服务器没有收到客户端的socket.io消息

我开始了一个简单的express + socket.io项目。 在服务器上,我注册到套接字的“连接”事件,然后我发送消息给客户端。 这很好。

当我从服务器接收到客户端的消息时,在这个事件处理程序中,我做了socket.emit('message','some text');

这个消息不会到达服务器。 我知道这应该是非常简单的,因此我想我错过了一些愚蠢的东西。 任何帮助赞赏。

服务器代码:

var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function (req, res) { res.sendfile('index.html'); }); io.on('connection', function (socket) { console.log('a user connected'); io.emit('server-message', 'hello socket.io server'); }); io.on('message', function(message) { console.log(message); }); 

客户代码:

 window.socket = io.connect('http://localhost:3000'); socket.on('server-message', function (message) { console.log(message); socket.emit('message', 'hello socket.io from browser'); }); 

看起来像io.emit('server-message', 'hello socket.io server'); 应该改为socket.emit('server-message', 'hello socket.io server'); 然后您需要将以下内容移到connection事件侦听器中:

 io.on('message', function(message) { console.log(message); }); 

并将其更改为

 socket.on('message', function(message) { console.log(message); });