在 SignalR 中过滤掉某些用户的一些条目
Filter out some entries for some users in SignalR
我正在尝试构建我称之为 "data feed" 的东西,它使用 SignalR,但我想要做的事情的关键是我想根据某些用户的偏好过滤掉一些数据。
所以,想想一个聊天室,每个条目都有一些标签,例如健身、棒球等
如果用户 A 在其订阅的标签中包含棒球,则用户 A 将可以看到其中包含 "baseball" 标签的下一个条目。但是,如果用户 B 没有,则他不应看到该条目"baseball" 在他的偏好中添加标签。
换句话说,一个聊天室,用户看不到所有条目,只能看到与他们的标签订阅相匹配的条目。
SignalR 可以吗?
您要查找的是SignalR Groups。每个用户可以根据自己的喜好 join/leave 不同的组:
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);
}
我正在尝试构建我称之为 "data feed" 的东西,它使用 SignalR,但我想要做的事情的关键是我想根据某些用户的偏好过滤掉一些数据。
所以,想想一个聊天室,每个条目都有一些标签,例如健身、棒球等
如果用户 A 在其订阅的标签中包含棒球,则用户 A 将可以看到其中包含 "baseball" 标签的下一个条目。但是,如果用户 B 没有,则他不应看到该条目"baseball" 在他的偏好中添加标签。
换句话说,一个聊天室,用户看不到所有条目,只能看到与他们的标签订阅相匹配的条目。
SignalR 可以吗?
您要查找的是SignalR Groups。每个用户可以根据自己的喜好 join/leave 不同的组:
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);
}