我发现一些移动网络提供商本身不支持端口 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/