我正在尝试触发一个名为' usernames '的事件。 我在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中,emit位于服务器端:
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();
没有任何事情发生,事件不会触发。
帮助?
答案 0 :(得分:0)
回答我自己的问题。 有2个错误: 1)陈述&#39; data.length()&#39;没有编译,正确的方法是使用&#39; data.length&#39;。 2)我没有解雇新用户&#39;事件因此用户名&#39;事件没有触发。