Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.IO在另一个套接字中发出_Javascript_Node.js_Sockets_Socket.io - Fatal编程技术网

Javascript Socket.IO在另一个套接字中发出

Javascript Socket.IO在另一个套接字中发出,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,我制作了一个使用Socket.IO的聊天应用程序,当用户收到一些垃圾邮件后被禁止时,我试图发出一条消息 我有这个工作代码 socket.on('banned-message', function() { console.log('ok2'); io.emit('banned-message'); }); 我在另一个工作函数中实现了这段代码,当被禁止的用户试图发送聊天信息时,可以发送被禁止的消息 socket.on('chat-message', function(msg) {

我制作了一个使用Socket.IO的聊天应用程序,当用户收到一些垃圾邮件后被禁止时,我试图发出一条消息

我有这个工作代码

socket.on('banned-message', function() {
    console.log('ok2');
    io.emit('banned-message');
});
我在另一个工作函数中实现了这段代码,当被禁止的用户试图发送聊天信息时,可以发送被禁止的消息

socket.on('chat-message', function(msg) {
    antiSpam.addSpam(socket);
    io.emit('chat-message', socket.username, socket.picture, msg.msg);

    if (typeof antiSpam.getBans()[0] !== 'undefined' && socket.ip === antiSpam.getBans()[0].ip) {
        console.log('ok');
        socket.on('banned-message', function() {
            console.log('ok2');
            io.emit('banned-message');
        });
    }
});
我知道在另一个() 但是当用户被禁止时,我的第二个
套接字在
上,在
内,如果没有使用,它只返回我的第一个控制台日志

这是客户端代码,它被调用在我的聊天中发送禁止的消息

socket.on('banned-message', function(){
    console.log('bannned send');
    messagesArea.append('<section class="row msgTemplate simpleMessage"><p>banned</p></section>');
    scrollBottom();
});
socket.on('banked-message',function(){
console.log('bannned send');
messagesArea.append(“禁止”

”); 滚动底部(); });
我不明白为什么这段代码单独运行很好,但在另一个
套接字中却不行

有什么想法和线索来解决这个问题吗


感谢您的帮助。

客户端代码是否发送了
禁止消息
?@MiJyn It只发送
消息rea.append()中的mesages在我的聊天中,而不是在节点服务器控制台中。对不起,我用错了
socket.on('banked-message',…)
仅当
禁止的消息发送到套接字时才会运行,对吗?为客户端提供的代码只侦听
禁止消息
事件,而不发送该事件(这是处理该事件的服务器代码运行所必需的)。所以我想知道你的代码的另一部分是否发送了它?
socket.on('banked-message',…)只有在被禁止的消息发送到socket时才会运行,对吗?
我不这么认为,因为当我的代码不在另一个
socket.on
中时,它工作得很好,就像我上面所说的。我认为问题在于socket.on('banked-message',function(){})只是没有被调用/使用,但我不知道为什么。但是不,没有代码的另一部分发送
禁止消息
如果将其保留在函数中,我认为每次发送
聊天消息
事件并且If子句为true时,它都会保留一个新的事件处理程序。这是你想要的吗?如果
禁止的消息不在函数范围内,如何调用它?