如何掩盖websockets?

我正在尝试在JavaScript中编写一个客户端,它将websockets发送到node.js / ws服务器。 经过大量的阅读,我明白,它有用,甚至RFC要求掩盖从客户端发送到服务器的所有数据,但我不明白该怎么做。

我发现了这样一些文章:

http://www.htmlgoodies.com/html5/tutorials/making-html5-websockets-work.html

但我找不到任何起点甚至是掩盖数据的function。 我真的不明白遮掩的概念。 图书馆/function将是有益的。 我正在努力解决这个问题一段时间没有…如果我掩盖它发送的数据,我需要在服务器端“揭露”? 你有什么想法?

如果您试图从浏览器Javascript到服务器build立一个webSocket连接,然后通过该webSocket连接发送数据,那么您只需在浏览器中使用内置的webSocket支持。 你只需要调用socket.send() ,底层的webSocket支持将为你做所有的webSocket协议信息(包括掩码)。

如果你正在尝试从node.js到其他服务器build立一个webSocket连接,那么你最好在NPM上获取node.js的许多webSocket库中的一个,并使用其中的一个。 那些库将会为你做所有的webSocket协议信息(包括屏蔽)。

如果您尝试在自己的nodejs服务器上接受传入的webSocket连接,那么您同样可以使用node.js的几个webSocket服务器库之一,并且该库将为您处理所有掩码。

您只能将webSocket客户端连接到webSocket服务器,因为两端必须使用webSocket连接scheme,然后才能支持webSocket协议,数据组帧和安全scheme。 除非你是出于学术原因,或者试图在没有通用支持的平台上实现webSocket,否则实现自己的webSocket库是很less见的。 协议有多种变化(由于规范的发展,为了正确支持和testing一个完整的实现将做的事情是很多的工作)。

所以我明白,我仍然需要掩盖数据,如果我从一个非ssl网站发送websockets到ssl服务器,对不对?

你似乎有点困惑。 两个端点之间的连接是SSL或不是。 您不能使用SSL的连接的一端,另一端不使用SSL。 一个webSocket连接(两端)可以正常运行或使用SSL。 webSocket规范要求客户端屏蔽所有的数据,但是这将会自动地由你正在使用的任何webSocket客户端库来完成。 这不是你作为使用webSocket库的客户端所必须关心的事情。

非SSL网页(通过常规http加载的不使用SSL的页面)可以与某个也支持SSL的webSocket服务器build立SSL连接。