[英]Connecting events to socket.io
我无法一生解决这个问题……请第二只眼睛帮忙! 我正在尝试在将值分配给“优胜者”的函数中捕获“优胜者”值。 然后,我想将此数据广播给所有客户。
这是指向我的存储库的链接(以查找代码:专注于(服务器) 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);
};
});
这样,您的客户端代码就知道要查找什么。
当您启动节点服务器时,您是否遇到任何错误:未定义? 如果您可以启动它而不会发生任何错误,那完全是胡说八道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.