命名空间不适用于node.js应用程序中的socket.io-client

时间:2018-11-23 11:23:34

标签: javascript node.js socket.io

网页客户端上的命名空间对我来说很好用:

// Browser side JS: processed by browserify
var io = require('socket.io-client')('/namespace');
io.emit("message", data);

服务器接收连接并且消息没有任何问题。但是,如果我尝试使用node.js命名空间的客户端应用程序不起作用。代码如下:

test.js

var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', {
    reconnect: true,
    path: '/namespace'
});

// Add a connect listener
socket.on('connect', function(socket) {
    console.log('Test connected!');
});

socket.emit('message', data);

在这种情况下,运行node test.js的客户端永远不会连接到服务器,也不会发出任何消息。在服务器端控制台上,我看到以下输出:

GET /namespace/?EIO=3&transport=polling&t=MT0IoBp&b64=1 404 22.327 ms - 1423

有什么想法吗?错误还是需要以其他方式设置名称空间?

1 个答案:

答案 0 :(得分:0)

将node.js客户端代码更改为

var socket = io.connect('http://localhost:3000/namespace', {
    reconnect: true
});

工作正常!