Socket io不会发出第二个参数

时间:2015-11-25 13:54:01

标签: node.js sockets

我正在尝试发送一些文字&数字到客户端。第一个参数工作正常并将数据发送到服务器,但第二个参数显示为undefined 我正在使用以下代码

  

服务器端

io.sockets.on('connection', function (socket) {     
    randomHashtag.number = Math.floor((Math.random() * 10000) +1);
    //var randomHashtag = Math.floor((Math.random() * 10000) +1);
    io.emit('stream',{text:tweet.text, number:randomHashtag.number});

});
  

客户端

socket.on('stream', function(tweet,randomHashtag){//Stream tweets
    console.log(tweet.text);
    console.log(randomHashtag); 
});

2 个答案:

答案 0 :(得分:1)

我不熟悉socket.io,但我猜这个事件只接收你之前发出的对象:

socket.on('stream', function(data){//Stream tweets
    console.log(data.text);
    console.log(data.number); 
});

答案 1 :(得分:0)

Socket.io旨在仅发送一个参数。或者没有。但那个参数可以是任何东西。因此,如果您需要发送多个值,请发送一个对象:

// Server (you got this part right):
io.emit('stream',{text:tweet.text,number:randomHashtag.number});

// Client:
socket.on('stream', function(data){
    var tweet = data.text;
    var randomHashtag = data.number;
});