我的客户端设置如下:
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);
});
但我的服务器从未收到消息,因为客户端的发射不会触发。套接字存在,我没有错误。
我该如何解决这个问题?
答案 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);
});
});