[英]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.