2016-05-21 121 views
0

我正在尝试构建我称之为使用SignalR的“数据馈送”,但是我想要做的关键是我想为某些用户过滤掉一些数据根据他们的喜好。在SignalR中筛选出一些用户的一些条目

因此,想一下聊天室,其中每个条目都有一些标签,例如健身,棒球等

如果用户A在其订阅的标签中有棒球,那么下一个具有“棒球”标签的条目将对用户A可见。但是,如果用户B不应该看到该条目在他的喜好中没有“棒球”标签。

换句话说,一个聊天室,用户不会看到每个条目,但只有符合其标签订阅的聊天室。

SignalR可以吗?

回答

0

你在找什么是SignalR Groups。每个用户可以根据自己的喜好加入/离开不同的组:

public Task JoinGroup(string tagName) 
{ 
    return Groups.Add(Context.ConnectionId, tagName); 
} 

public Task LeaveGroup(string tagName) 
{ 
    return Groups.Remove(Context.ConnectionId, tagName); 
} 

public Task SendMessage(string message, string tagName) 
{ 
    Clients.Group(tagName).addChatMessage(message); 
} 
+0

我有一个后续问题:我得到了SignalR组的概念。我看到这些组织允许我“分割”我的信息,这解决了我的第一个要求。第二个要求是将来自多个组的消息汇总到一个Feed中。 SignalR有可能吗?例如,假设一个用户是3个组的成员,例如棒球,健身,摩托车。我想为此用户创建一个源,以便在这些组中的任何一个组中发送更新。我如何使用SignalR来处理这个问题? – Sam

+0

那么,所有用户都加入了同一个集线器。每个用户加入一些组。当用户发送消息时,您必须从js中为每个想要发送该消息的组调用SendMessage函数。 –