我在流浪汉环境中使用socket.io开发了一个简单的聊天,它可以正常工作。
当我尝试在生产环境中运行聊天时,nodejs / socket.io服务器会运行,但客户端甚至不会触发connect事件。 我唯一能修改的是客户方:
var socket = io.connect('http://localhost:3000');
为:
var socket = io.connect('http://ip_address:3000');
这是服务器代码:
var app = require('http').createServer(handler);
var io = require('socket.io')(app);
app.listen(3000, function() {
console.log('Server is running');
});
function handler(req, res) {
res.writeHead(200);
res.end('');
}
io.on('connection', function(socket) {
socket.on('subscribe', function() {
console.log('subscribe request has arrived');
console.log(socket.id);
});
});
答案 0 :(得分:1)
如果它在本地工作并在部署后停止工作,则可能是网络问题 - 防火墙,阻塞端口,Linux强制执行或类似的东西。
要查找源,请转到主机服务器并尝试连接端口
telnet 127.0.0.1 3000
您是否收到“拒绝连接”错误?如果是这样哪个服务器正在运行代码?确保防火墙服务关闭或端口3000的例外情况。在linux上检查enforcing。
如果连接成功,请测试本地PC的连接
telnet ip_address 3000
如果失败而不是对外部服务的测试访问(例如portquiz.net),这样您就会知道问题是在本地PC还是网络或删除服务器上。