node.js - Socket.io 客户端无法连接到服务器

标签 node.js socket.io

我在 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/

相关文章:

javascript - socket.io 在发送到特定客户端 Node JavaScript 后断开连接

javascript - 如何通过socket.io发送JSON

node.js 排序对象(mongoose、express、ejs)

node.js - Nuxt Express 中间件获取请求中未定义 req.query

node.js - 如何在 Mongoose 中更新?

javascript - 如何在本地运行node.js应用程序进行开发

mysql - NodeJS MySQL 错误

Node.js - 基本 Node Web 服务器未提供 Socket.io 客户端文件

python - 异常 gevent.hub.LoopExit : LoopExit ('This operation would block forever' , )

javascript - 在卸载时或卸载前确认时发送 SocketIO 消息