gpt4 book ai didi

node.js - 将端口 443 用于 Socket.IO 是个坏主意吗?

转载 作者:搜寻专家 更新时间:2023-10-31 22:42:40 28 4
gpt4 key购买 nike

根据以下帖子,某些网络只允许连接到端口 80 和 443: Socket IO fails to connect within corporate networks

编辑:为澄清起见,问题是最终用户在公司防火墙后面使用浏览器工作。我的服务器防火墙设置在我的控制之下。

我读过 Nginx 使用 proxy_pass 到 Socket.io 监听另一个端口(我读过它的缺点),还使用 ​​nodejitsu/node-http-proxy 反向代理将非 Node 流量传递到 Nginx(这还有其他缺点)。我有兴趣考虑所有可能的选择。

找了很多,没有找到任何关于socket.io监听443端口可能性的讨论,像这样:

var io = require('socket.io').listen(443);

客户端会像这样连接的地方:

var socket = io.connect('http://url:443/', {secure: false, port: '443'});

除了无法在该服务器上使用 https 之外,还有其他缺点吗? (例如,公司网络是否会阻止通过端口 443 进行的非 SSL 通信?)

最佳答案

端口 443 上的非加密流量可以工作,但如果您希望与具有偏执和不太称职的安全策略的网络兼容,您应该假设有人已经“保护”自己免受它。

无论愚蠢的防火墙如何,您都应该使用 SSL 加密的 WebSockets,因为 WebSocket 协议(protocol)与 HTTP 不兼容(它伪装成这样,但这还不够)并且不能可靠地与 HTTP 代理一起工作。

例如,O2 UK(可能还有许多其他移动 ISP)通过其代理管道传输所有未加密的连接,以重新压缩图像和审查网站。他们的代理中断了 WebSocket 连接,唯一的解决方法是使用 SSL(除非您对 Socket.IO 退回到 jsonp 轮询感到满意...)

关于node.js - 将端口 443 用于 Socket.IO 是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8220015/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com