2014-01-19 78 views
0

我有一个工作的socket.io服务器启动并运行,并且我试图实现一个服务器端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++; 
      }); 
    });   

回答

0

您是否尝试过这样做呢?

console.log(data.msg); 
0

你可以尝试改变 “插座”,以 “本”:

this.emit('message', { 'msg': 'Hello World - ' + i }); 
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++; 
     }); 
}); 
相关问题