Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何屏蔽WebSocket?_Javascript_Node.js_Websocket - Fatal编程技术网

Javascript 如何屏蔽WebSocket?

Javascript 如何屏蔽WebSocket?,javascript,node.js,websocket,Javascript,Node.js,Websocket,我试图用JavaScript编写一个客户端,将WebSocket发送到node.js/ws服务器。经过大量阅读,我明白RFC屏蔽从客户端发送到服务器的所有数据是有用的,甚至是必需的,但我不知道如何做到这一点 我发现了几篇类似这样的文章: 但我找不到任何起点,甚至找不到一个函数来屏蔽数据。我真的不太理解掩蔽的概念。图书馆/功能会很有帮助。我为这个问题挣扎了一段时间,但什么都没有。。。 如果我屏蔽发送的数据,我需要在服务器端“取消屏蔽”吗? 您有什么想法吗?如果您试图建立从浏览器Javascrip

我试图用JavaScript编写一个客户端,将WebSocket发送到node.js/ws服务器。经过大量阅读,我明白RFC屏蔽从客户端发送到服务器的所有数据是有用的,甚至是必需的,但我不知道如何做到这一点

我发现了几篇类似这样的文章:

但我找不到任何起点,甚至找不到一个函数来屏蔽数据。我真的不太理解掩蔽的概念。图书馆/功能会很有帮助。我为这个问题挣扎了一段时间,但什么都没有。。。 如果我屏蔽发送的数据,我需要在服务器端“取消屏蔽”吗?
您有什么想法吗?

如果您试图建立从浏览器Javascript到服务器的webSocket连接,然后通过该webSocket连接发送数据,您只需在浏览器中使用内置的webSocket支持即可。您只需调用
socket.send()
,底层webSocket支持将为您提供所有webSocket协议信息(包括屏蔽)


如果您正试图从node.js连接到其他服务器,那么最好是在NPM上为node.js获取众多webSocket库中的一个,并使用其中的一个。然后,这些库将为您提供所有webSocket协议信息(包括屏蔽)

如果您试图在自己的nodejs服务器上接受传入的webSocket连接,那么类似地,您将使用node.js的几个webSocket服务器库中的一个,该库将为您处理所有屏蔽

您只能将webSocket客户端连接到webSocket服务器,因为两端必须使用webSocket连接方案,然后支持webSocket协议、数据帧和安全方案。除非您这样做是出于学术原因,或者尝试在没有通用支持的平台上实现webSocket,否则很少实现自己的webSocket库。协议中有很多变化(由于规范的演变,要正确地支持和测试完整实现所能做的一切,需要做很多工作)

所以我明白,如果我将WebSocket从非ssl网站发送到ssl服务器,我仍然需要屏蔽数据,对吗

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


非SSL网页(通过不使用SSL的常规http加载的网页)可以与某些同样支持SSL的webSocket服务器建立SSL webSocket连接。

也许这篇文章可以帮助你:我已经阅读了那篇文章,但没有帮助。buuut,我发现了这个:我将使用SSL。所以问题是:如果我的服务器是ssl,而客户端是非ssl,我仍然需要屏蔽?如果您通过https发送websocket流量。。。这是你应该做的。。。那么我看不到隐藏数据内容的好处。。。这些链接假设您使用的是http,而您在2017年不应该使用http。这个问题对屏蔽的用途有一些很好的答案:;另外,MDN在这里有一些信息:@ScottStensland谢谢你的回答。所以我明白,如果我将WebSocket从非ssl网站发送到ssl服务器,我仍然需要屏蔽数据,对吗?