我正在尝试收听有关“'事件”的更新。服务。我不需要知道“事件”中发生的所有更新。服务,只是具有特定身份的服务。
socket.on('event updated', (rEvent) => {
console.log('Got an updated Event!', rEvent);
});
以上代码会监听“事件”的任何更新。服务,它的工作......我得到了一切。
但是,我想听一下“赛事/ 34' ...... 34是事件ID
我尝试过类似的事情:
socket.on('event/34 updated', (rEvent) => {
console.log('Got an updated Event!', rEvent);
});
但这不起作用。
根据ID监听服务更新的正确方法是什么?
答案 0 :(得分:0)
确定发送到哪个客户端的事件是event filters的用途。因此,您将以某种方式确定属于connection
的用户是否正在侦听事件ID:
app.service('events').filter('updated', function(data, connection, hook) {
if(checkIfUserListensToEventId(connection.user, event)) {
return data;
}
return false;
});
通常,服务器端过滤器应仅确定用户是否允许查看数据。事件相对便宜,并且在客户端上确定是否应该使用或忽略数据(而不是必须以某种方式在服务器上有状态地跟踪它)更容易。
旁注:Feathers v3将support rooms/channels使事件调度更具效果。