Javascript 客户端可以接收事件,但可以';不发射
我的客户设置如下:Javascript 客户端可以接收事件,但可以';不发射,javascript,node.js,socket.io,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('mes
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' });
});
编辑:my on.message功能:
io.on('message', (socket) => {
console.log(socket.message);
});
但是我的服务器从未收到消息,因为客户端的emit不会触发。套接字存在,我没有收到任何错误
如何修复此问题?尝试将侦听器嵌套在连接函数中,如:
io.on('connection', (socket) => {
socket.on('message', (socket) => {
console.log(socket.message);
});
});
如中所述,尝试将侦听器嵌套在连接函数中,如:
io.on('connection', (socket) => {
socket.on('message', (socket) => {
console.log(socket.message);
});
});
如中所述,我认为您必须在连接内部收听
消息
:
io.on('connection', (socket) => {
socket.emit('thing', { data: 'thisisathing' });
socket.on('message', (data) => {
console.log(data.message);
});
});
我认为您必须在连接中收听
消息
:
io.on('connection', (socket) => {
socket.emit('thing', { data: 'thisisathing' });
socket.on('message', (data) => {
console.log(data.message);
});
});
你在服务器上有接收消息的事件处理程序设置吗?我有,我编辑了我的问题你在服务器上有接收消息的事件处理程序设置吗?我有,我编辑了我的问题我也侦听“连接”,我修改了我的问题以包含函数我也侦听“连接”,我修改了我的问题,加入了我以前在使用socket.io时不必这样做的功能。不管怎样,编辑:当我在传递的“socket”上调用emit时起作用。你看了文档并尝试了我答案中的语法了吗(略有不同)事实上你在我面前回答正确。因此,JmJ可以随意将@Maxwell Lasky answer标记为“正确”。哈哈,别担心,希望@JmJ做出这样的更改以防止其他人产生任何混淆。我以前使用socket.io时不必这样做,但无论如何它不起作用编辑:当我在传递的“socket”上调用emit时起作用你看了文档并尝试了我答案中的语法了吗(略有不同)事实上,你在我面前说得对。所以,JmJ可以随意将@Maxwell Lasky的答案标记为正确。哈哈,别担心,希望@JmJ做出这样的改变,以防止其他人产生任何困惑