关于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,可用任意方法操作
 }; 

 

效果如下:

posted @ 2013-04-23 15:20  leeolevis  阅读(2349)  评论(0编辑  收藏  举报