Socket.IO在另一个套接字内部发出

时间:2016-03-04 09:54:57

标签: 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) {
    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');
        });
    }
});

我知道可以在另一个https://github.com/socketio/socket.io-client/blob/master/test/connection.js#L231内加socket.on 但是当用户被禁止时,socket.on内的第二个if未被使用,它只返回我的第一个控制台日志......

这是在我的聊天中发送禁止消息的客户端代码

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

我不知道为什么这段代码可以单独使用,但不能用于其他socket.on

任何想法,解决这个问题的线索?

感谢帮助我。

0 个答案:

没有答案