我在 vagrant 环境中使用 socket.io 开发了一个简单的聊天,并且它工作正常。
当我尝试在生产环境中运行聊天时,nodejs/socket.io 服务器会运行,但客户端甚至不会触发连接事件。 我唯一修改的是在客户端:
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);
});
});
最佳答案
如果它在本地工作并在部署后停止工作,则可能是网络问题 - 防火墙、端口阻塞、Linux 强制或类似问题。
要查找源,请转到主机服务器并尝试连接端口
telnet 127.0.0.1 3000
您是否收到“连接被拒绝”错误?如果是,哪台服务器正在运行代码?确保防火墙服务已关闭或端口 3000 除外。在 Linux 上检查 enforcing .
如果连接成功,请从本地电脑测试连接
telnet ip_address 3000
如果失败,则测试对外部服务的访问(例如 portquiz.net ),这样您就可以知道问题是否出在您的本地电脑或网络,或者删除服务器上。
关于node.js - Socket.io 客户端无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35295113/