直接上代码,代码如下:
let isFirst1 = 1;
sockets.forEach((socket)=>{
if(isFirst1 == 1) {
lightLog.info(‘推送计算结果bonus事件’,dataArr);
socket.emit(‘bonus1’,dataArr);
socket.broadcast.emit(‘bonus1’,dataArr);
isFirst1 = 0;
}else{
lightLog.info(‘不推送数据’);
}
});
代码的目的是想实现只推送一次,但是现在的问题是,当使用isFirst1标志的时候,只发送给自己,不广播事件,这个时候事件发不出去,当把isFirst1标志去掉的时候,就可以,但是这个时候就会推送多次,请问如果我只想推送一次,应该来怎么做呢???
另外我发现只有广播的功能有用,socket.emit这个好像没有用,不知道为什么???