【发布时间】:2017-08-01 08:29:48
【问题描述】:
我正在尝试测试一个简单的 socket.io websocket 服务器。我找到的用于在命令行中测试 socket.io 的工具是 iocat。
服务器:
var io = require('socket.io')(12345);
io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('test', function(msg){
console.log('test msg: ' + msg);
io.emit('test', 'Test answer');
});
});
我使用node socket.js 命令启动它,并禁用了这台机器上运行的所有网络服务器。
这行得通。服务器对连接和断开事件响应正常,但对“测试”消息没有响应:
me@whatever:~/prj/client$ iocat --socketio ws://localhost:12345
> test
> asdfasdf
>
服务器响应:
me@whatever:~/prj/client$ node socket.js
a user connected
user disconnected
a user connected
user disconnected
有人知道为什么吗?我更喜欢命令行测试器,因为我想将我的 Web 服务器放在 https、Apache 代理和子 URL 上。所以我想确保我踩到它,没有其他任何干扰。
【问题讨论】:
-
服务器没有问题。正如我在下面修改后的答案所解释的那样,您的客户端发送的消息名称为
message,而不是test,因此您的服务器永远不会看到它。
标签: node.js websocket socket.io