Backand:如何只监听并发出特定项目的实时更改?

时间:2015-12-27 09:36:09

标签: angularjs real-time-updates backand

在文档中写道,您可以通过使用以下服务器端代码为更新事件向所有连接的用户发送事件

function backandCallback(userInput, dbRow, parameters, userProfile)       
{  
  socket.emitAll("items_updated", userInput);  
} 

然后在您的角度客户端代码中,您可以通过执行以下操作来侦听此事件

Backand.on('items_updated', function (data) {
  //Get the 'items' object that have changed
  console.log(data);
});

我正在与匿名用户合作,我不能使用emitUsers或emitRoles来限制只关注用户。

因为我不希望所有匿名用户都接收所有更新事件,只接收他们所在项目的那些事件(愚蠢的听取更新你不关心不是它!), 会有办法只监听特定项目的事件吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

事实上,我已经找到了解决方案,感谢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);  
} 

- 关于角度客户端代码

//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);
    });