javascript - 从 ws ://to wss://切换时需要注意什么

标签 javascript node.js ssl websocket

我发现一些移动网络提供商本身不支持端口 80,但他们确实支持端口 443,我觉得这有点奇怪。 无论如何,对此我无能为力,这导致我从端口 80 切换到端口 433,使用 wss:// 代替 ws://

我想知道使用wss://是否有任何负面影响? 问题是我(还)没有 SSL 证书。

最佳答案

唯一真正的“负面”影响可能是对您发送的内容进行加密/解密所需的 CPU 利用率略有增加。其中一些可以通过选择较弱(re:faster)的密码来抵消,或者在极端情况下,使用基于 SSL 硬件的卸载。由于 TLS key 交换,建立连接时也会增加一点延迟(当然类似于使用 HTTPS)。但由于 key 交换握手只需在连接上发生一次,因此总体成本并不大。

正如您所指出的,您还需要获得适当的 SSL 证书,因此这将是一项额外的管理成本(如果您得到认可的证书颁发机构的签名,并且加载它需要一些时间,则费用均为 $$)进入某个 keystore )。

同意上面的 phil (@leggetter) 的观点,大多数移动提供商都使用缓存代理来加速端口 80 请求的响应(假设它是 http 内容流过它),并且它经常干扰原始的 http 响应握手WS。当您使用加密时,代理无论如何都无法解析/解密内容,因此它们会让它通过。这就是为什么端口 443 通常可以工作而端口 80 则不能工作的原因。您还可以尝试在 80 以外的端口上使用 WS 连接,但前提是您的用户不在防火墙后面。移动网络通常不会在备用端口上缓存/干扰。

关于javascript - 从 ws ://to wss://切换时需要注意什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135159/

相关文章:

javascript - Material UI 在点击 'tab' 时未选择 SelectField

javascript - Node 中的 request.post 抛出 { code : undefined, Reason: 'Argument error, options.body.' }

javascript - async.each 是非阻塞的吗? Node .js

javascript - 如何在网站的所有 anchor (<a>)标签中放置 "target=' _blank' "?

javascript - 如何在两个图像之间切换

Python Magic(智能,双模)SSL Socket?

node.js - 将 openssl 证书加载到 Node 中

java - Java 服务器 : BKS not found 上的 KeyStore 错误

javascript - anchor 标记点击可在同一 onClick Javascript 函数中进行区分

node.js - 如何在 Cloud Functions Firestore 中处理读取和写入