【发布时间】:2016-01-16 05:59:18
【问题描述】:
我目前正在使用来自 nodejs 的 Socket.IO 在服务器和一些客户端之间共享一些实时信息。客户端应该只与服务器通信,而不是相互通信。
在 windows 上一切都很好,我可以共享信息,但是当它把东西放到 linux vps 上时,我遇到了一个问题,他在 ipv6 套接字上启动了所有东西,这让我很难连接到客户端浏览器库来自socket.io
我这样启动服务器:
io = require('socket.io').listen(3000);
效果很好,我可以连接。现在在 linux vps 上,我尝试使用这样的 ipv4 地址来阻止 ipv6
io = require('socket.io').listen(3000, '0.0.0.0');
但这不起作用,不是在 linux 上,也不是在 Windows 上。除非我像这样使用http服务器,否则他不会将套接字绑定到我想要的ip:
http = require('http').createServer().listen(3000, '0.0.0.0');
io = require('socket.io').listen(http);
现在我的问题是,我必须使用http服务器来解决将套接字绑定到正确的本地ip和端口的问题还是有其他解决方案?在我的第一行代码的情况下,socketio 是在后台启动一个 http 服务器,因为它是一个 web 套接字,还是 socketio 在没有 http 服务器的情况下工作?
【问题讨论】: