将事件连接到 socket.io
Connecting events to socket.io
我一辈子都解决不了这个问题...我需要第二双眼睛来帮忙,拜托!我试图在将值赋给 "winner" 的函数中捕获 "winner" 值。然后我想将这些数据广播给我所有的客户。
这是我存储库的 link(要查找代码:关注(服务器)index.js 第 29 行 和(客户端)public/js/general/darkroom/play.js 第 38 行 和 第 100 行 ) :
https://github.com/omaracrystal/Capstone.Project.io
这些是我正在采取的步骤:
1) public/js/general/darkroom/play.js >第 38 行
``socket.emit('winner known', winner);``
2) public/js/general/darkroom/play.js >第 100 行
``socket.on('winner known', function (data) {
console.log(data);
})``
3) index.js>第 29 行
``socket.on('winner known', function (data) {
socket.broadcast.emit(data);
}; ``
我做错了什么???
您在index.js
中使用了
io.on('connection', function (client) { //line 26
var addedUser = false;
socket.on('winner known', function (data) { //socket is undefined
socket.broadcast.emit(data);
};
});
改为使用
io.on('connection', function (socket) { //'socket' is the instance of connected client's socket
var addedUser = false;
socket.on('winner known', function (data) {
socket.broadcast.emit(data);
};
});
当你启动你的节点服务器时,你有没有遇到任何错误:有些东西是未定义的?如果你能启动它而没有任何错误发生,那完全是胡说八道。
当您从套接字发出时,您需要命名您的事件类型。所以:
io.on('connection', function (socket) {
var addedUser = false;
socket.on('winner known', function (data) {
socket.broadcast.emit(data);
};
});
应该是
io.on('connection', function (socket) {
var addedUser = false;
socket.on('winner known', function (data) {
socket.broadcast.emit('winner known', data);
};
});
这样您的客户端代码就知道要查找什么。
我一辈子都解决不了这个问题...我需要第二双眼睛来帮忙,拜托!我试图在将值赋给 "winner" 的函数中捕获 "winner" 值。然后我想将这些数据广播给我所有的客户。
这是我存储库的 link(要查找代码:关注(服务器)index.js 第 29 行 和(客户端)public/js/general/darkroom/play.js 第 38 行 和 第 100 行 ) : https://github.com/omaracrystal/Capstone.Project.io
这些是我正在采取的步骤:
1) public/js/general/darkroom/play.js >第 38 行
``socket.emit('winner known', winner);``
2) public/js/general/darkroom/play.js >第 100 行
``socket.on('winner known', function (data) {
console.log(data);
})``
3) index.js>第 29 行
``socket.on('winner known', function (data) {
socket.broadcast.emit(data);
}; ``
我做错了什么???
您在index.js
中使用了
io.on('connection', function (client) { //line 26
var addedUser = false;
socket.on('winner known', function (data) { //socket is undefined
socket.broadcast.emit(data);
};
});
改为使用
io.on('connection', function (socket) { //'socket' is the instance of connected client's socket
var addedUser = false;
socket.on('winner known', function (data) {
socket.broadcast.emit(data);
};
});
当你启动你的节点服务器时,你有没有遇到任何错误:有些东西是未定义的?如果你能启动它而没有任何错误发生,那完全是胡说八道。
当您从套接字发出时,您需要命名您的事件类型。所以:
io.on('connection', function (socket) {
var addedUser = false;
socket.on('winner known', function (data) {
socket.broadcast.emit(data);
};
});
应该是
io.on('connection', function (socket) {
var addedUser = false;
socket.on('winner known', function (data) {
socket.broadcast.emit('winner known', data);
};
});
这样您的客户端代码就知道要查找什么。