成功连接后,Socket.io-client不会收到任何消息

时间:2014-01-19 13:17:05

标签: node.js websocket socket.io client-server

我有一个正在运行的socket.io服务器,我正在尝试实现服务器端socket.io客户端。下面是我一直用于测试的代码片段。这个问题是客户端只输出一次消息,在这种情况下它只接收“欢迎”。我尝试通过浏览器向私人频道发送消息“消息”,但即使服务器可以成功接收和发送消息,它也不会显示任何输出。

客户端

    var io = require('socket.io-client');
    var socket = io.connect('http://localhost:3000', {'force new connection': true});
    socket.on('connect', function(){
            socket.on('message', function (data) {
                    console.log(data);
            });
    });

服务器

    var io = require('socket.io').listen(server);
    var i=0;

    io.sockets.on('connection', function (socket) {
            socket.emit('message', { 'msg': 'Welcome'});
            socket.on('message', function (from, msg) {
                    socket.emit('message', { 'msg': 'Hello World -  ' + i });
                    i++;
            });
    });        

3 个答案:

答案 0 :(得分:0)

你试过这个吗?

console.log(data.msg);

答案 1 :(得分:0)

您可以尝试将“套接字”更改为“此”:

this.emit('message', { 'msg': 'Hello World -  ' + i });

答案 2 :(得分:0)

您应该从客户端发送到服务器。因此服务器可以将数据发送回客户端。我想这段代码工作正常: - )

<强>客户端

var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', {'force new connection': true});
socket.on('connect', function(){

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

        socket.emit('message','some message');
});

服务器

var io = require('socket.io').listen(server); 
var i=0;

io.sockets.on('connection', function (socket) {
        socket.on('message', function (msg) {
                console.log(msg);
                socket.emit('messageRecieved', { 'msg': 'Hello World -  ' + i });
                i++;
        });
});