Node.js Socket.IO客户端'未处理的socket.io url'

Gil*_*ill 12 node.js socket.io

我正在尝试让node.js客户端使用Socket.IO与node.js服务器进行通信,根据文档,这应该很简单但是我只是收到消息'info - unhandled socket.io url'on客户端尝试连接到服务器时的服务器.这是一个非常基本的根示例:


在一个目录中,我安装了必要的Socket.IO模块:

npm install socket.io socket.io-client
Run Code Online (Sandbox Code Playgroud)

在文件servernode.js我把:

var app = require('http').createServer(), io = require('socket.io').listen(app);
io.sockets.on('connection', function(socket) {
   console.log('connected');
});
app.listen(60000);
Run Code Online (Sandbox Code Playgroud)

在另一个文件clientnode.js我把:

var socket = require('socket.io-client')('http://localhost:60000');
socket.on('connect', function(){
     console.log('socket connected.');
});
Run Code Online (Sandbox Code Playgroud)

在我放的两个终端

node servernode.js
Run Code Online (Sandbox Code Playgroud)

node clientnode.js
Run Code Online (Sandbox Code Playgroud)

然后在服务器中我无限次地重复此消息:

 info - unhandled socket.io url
Run Code Online (Sandbox Code Playgroud)

我搜索过这条消息,从我可以收集到的内容来看,它与版本之间的差异有关,但我想npm是否已将这些模块同步,不是吗?无奈之下,我也尝试从服务器模块获取文件'./ node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js'(并使用.connect - 不知何故,在这个版本中它是必要的)但后来又出现了另一个错误:

/home/work/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js:1877
var port = global.location.port ||
                          ^
TypeError: Cannot read property 'port' of undefined
at Socket.isXDomain (/home/work/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js:1877:31)
at Socket.handshake (/home/work/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js:1627:14)
at Socket.connect (/home/work/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js:1699:10)
at new Socket (/home/work/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js:1551:12)
at Object.io.connect (/home/work/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js:94:16)
at Object.<anonymous> (/home/work/testnode2.js:1:160)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

idl*_*erb 25

尝试使用较新版本的socket.io,它对我有用.

npm install socket.io@1.0
Run Code Online (Sandbox Code Playgroud)

  • 有什么解决方案的0.9.*版本? (3认同)
  • @ the.ufon以类似的方式工作于0.9:`npm install socket.io@0.9 socket.io-client @ 0.9` (2认同)