Node.js Socket.IO客户端“未处理的socket.io网址”

12

我正在尝试使用Socket.IO使一个node.js客户端与一个node.js服务器进行通信。根据文档,这应该非常容易,但是每当客户端尝试连接到服务器时,服务器上都会显示消息“info - unhandled 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)

有人能帮我解决这个问题吗?

1个回答

25

尝试使用更新版本的socket.io,这对我有用。

npm install socket.io@1.0

是的,对我也起作用了。我不知道1.0已经可用,我甚至不知道你可以在npm中选择模块版本。这太方便了!:D 感谢您的帮助! - Gill
3
有没有针对0.9.*版本的解决方案? - vaclav_o
2
@the.ufon 在0.9版本中类似的方式可以工作: npm install socket.io@0.9 socket.io-client@0.9 - Gill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接