我正在尝试让 node.js 客户端使用 Socket.IO 与 node.js 服务器通信,根据文档,这应该很容易,但是我只是收到一条消息“信息 - 未处理的 socket.io每当客户端尝试连接到服务器时,服务器上的 url'。这是一个非常基本的例子:
在一个目录中,我使用以下方法安装了必要的 Socket.IO 模块:
npm install socket.io socket.io-client
在一个文件 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);
在另一个文件 clientnode.js 我放:
var socket = require('socket.io-client')('http://localhost:60000');
socket.on('connect', function(){
console.log('socket connected.');
});
在我放置的两个终端中
node servernode.js
和
node clientnode.js
然后在服务器中,我无限期地收到此消息:
info - unhandled socket.io url
我已经搜索过这条消息,据我所知,它与版本之间的差异有关,但我想 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)
谁能帮我解决这个问题?
最佳答案
尝试使用较新版本的 socket.io,它对我有用。
npm install socket.io@1.0
关于Node.js Socket.IO 客户端 'unhandled socket.io url',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445043/