Back And:如何只收听和 emmett 对特定项目的实时更改?
Posted
技术标签:
【中文标题】Back And:如何只收听和 emmett 对特定项目的实时更改?【英文标题】:Backand: How to only listen and emit realtime changes on a specific item? 【发布时间】:2015-12-27 09:36:09 【问题描述】:在文档中写道,您可以使用以下服务器端代码向所有连接的用户发送事件来更新事件
function backandCallback(userInput, dbRow, parameters, userProfile)
socket.emitAll("items_updated", userInput);
然后在您的 Angular 客户端代码中,您可以通过执行以下操作来监听此事件
Backand.on('items_updated', function (data)
//Get the 'items' object that have changed
console.log(data);
);
我正在与匿名用户合作,我不能使用 emitUsers 或 emitRoles 来仅限于相关用户。
因为我不希望所有匿名用户接收所有更新事件,而只接收他们所在项目的更新事件(愚蠢地监听你不关心的更新,不是吗!), 有没有办法只监听特定项目的事件?
感谢您的帮助
【问题讨论】:
【参考方案1】:事实上,感谢 Backand 出色的支持团队,我找到了解决方案(感谢 Itay!)。
解决方法很简单,你可以用事件名称字符串来玩!
回到我的例子,假设我只希望用户监听他实际查看的项目的变化(例如项目 ID 为 57),那么代码将是: - 在服务器代码端
function backandCallback(userInput, dbRow, parameters, userProfile)
//if the updated item has an id=57 for example,
//the event emitted will be "items_updated_57"
socket.emitAll("item_updated_" + dbRow.id, userInput);
- 关于 Angular 客户端代码
//currentItem id
var itemId=57;
Backand.on('item_updated_'+ itemId, function (data)
//will be triggered when we receive an event named
// "item_updated_57"
console.log(data);
);
【讨论】:
以上是关于Back And:如何只收听和 emmett 对特定项目的实时更改?的主要内容,如果未能解决你的问题,请参考以下文章