客户端可以接收事件但无法发出

时间:2016-05-17 22:39:16

标签: javascript node.js socket.io

我的客户端设置如下:

var socket = io();

socket.on('thing', function(socket){
        console.log('A user connected: ' + socket.data);
});

function sendThing(){
    var data = document.getElementById('myInput').value;
    console.log(data)
    socket.emit('message', { message: data });
}

我可以很好地接收事件,我让我的服务器发出一个事件并且它注销正常:

io.on('connection', (socket) => {
  io.emit('thing', { data: 'thisisathing' });
});

编辑:我的on.message功能:

io.on('message', (socket) => {
    console.log(socket.message);
});

但我的服务器从未收到消息,因为客户端的发射不会触发。套接字存在,我没有错误。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

尝试在您的连接函数中嵌套侦听器,如:

io.on('connection', (socket) => {

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

});

docs

中所述

答案 1 :(得分:1)

我认为您必须在连接中听取message

io.on('connection', (socket) => {
  socket.emit('thing', { data: 'thisisathing' });
  socket.on('message', (data) => {
    console.log(data.message);
  });
});