我看了几个地方,但仍然无法找到关于如何使用群组的明确说明。我正在使用组进行过滤(仅将消息传递给客户端子集)。
我想在OnConnected
事件中将客户端加入服务器端的组。客户不需要知道它属于哪个组。
问题:
我是否还应该覆盖OnReconnected
事件?
作为GroupManager.Add
事件的结果,我应该返回OnConnected
返回的任务吗?如果我想加入多个组,我可能需要创建一个组合任务。右
3-为什么服务器(参见GroupManager.Add
实现)会向客户端发送AddToGroup
命令?有办法解决这个问题吗?也许通过使用Client.AllExcept(...)
并手动处理服务器上的组成员身份(哎呀!)?
我使用的是最新版本的SignalR(1.0.0.1)
答案 0 :(得分:3)
对评论的回应
评论1:是的 注释2:你必须返回一个任务,否则什么都不会完成(这是设计)。如果你不知道要返回什么,你总是可以返回base.OnConnected()。
当您调用GroupManager.Add时,它将返回一个任务,该任务表示连接何时在所需的组中。一旦加入该组,客户端就会通过令牌通知其现在在新组中。然后,令牌将允许客户端重新加入组,如果由于连接丢失而必须重新连接。