簡體   English   中英

為什么當我使用套接字發出消息時,事件不會觸發?

[英]Why won't the event trigger when I emit with socket?

我正在嘗試觸發一個名為“ 用戶名 ”的事件。 我在Node.js中使用Socket.IO庫。 所以我有2個文件,index.html和server.js:

我嘗試發出的事件在index.html的客戶端:

    //show online users
    socket.on('usernames', function (data) {
        console.log('@@@@@@@@@@@@@@@@@@@@@');
        var html = '';
        for (var i = 0; i < data.length() ; i++) {
            html += data[i] + '<br/>';
        }

        $users.html(html);
    });

發射在server.js的服務器端:

io.sockets.on('connection', function (socket) {
    //new user join
    socket.on('new user', function (data, callback) {
        if (nicknames.indexOf(data) != -1) { //if name dont exist .indexOf() returns -1
            callback(false);
        } else {
            callback(true);
            socket.nickname = data;
            nicknames.push(socket.nickname);
            io.sockets.emit('usernames', nicknames);
        }
    });
     // sent message from user
    socket.on('send message', function (data) {
        //send the data to all users
        io.sockets.emit('new message', data);
    });
    //
});

** index.html中的事件在$(document).ready();內部;

沒有任何反應,該事件不會觸發。

救命 ?

回答我自己的問題。 有兩個錯誤:1)語句“ data.length()”未編譯,正確的方法是使用“ data.length”。 2)我沒有觸發“新用戶”事件,因此沒有觸發“用戶名”事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM