关于ASP.NET SignalR的Group使用
SignalR的分组使用十分方便,官方已提供接口封装。
如果需要指定或者移除Connection的组时只需操作Groups即可
1、添加连接到指定的组.
Groups.Add(Context.ConnectionId, 组名称);
对应IGroupManager里的interface
Task Add(string connectionId, string groupName)
2、从组移除Connection连接
Groups.Remove(Context.ConnectionId, 组名称);
对应IGroupManager里的interface
Task Remove(string connectionId, string groupName);
客户端使用很简单,客户端JS调用服务器方法时指定Group
hub.server.messageGroup(组名称, 消息);
服务器端通过Group(组名称) 进行消息分发
public void MessageGroup(string group, string message) { Clients.Group(group).append(string.Format(CultureInfo.InvariantCulture, Format, message, DateTime.UtcNow, group + "/")); }
客户端获取消息
hub.client.append = function (message) { self.messages.push(message);//knockoutjs,可用任意方法操作 };
效果如下: