将Javascript客户端添加到组而不创建Hub方法

时间:2014-08-29 08:25:32

标签: .net signalr

我发现的所有示例都使用特殊的Hub方法将客户端添加到组中。像这样:

public class ProductsHub : Hub
{
    public void JoinGroup(string groupName)
    { 
        Groups.Add(Context.ConnectionId, groupName);
    }
}

如果我想在新客户端加入时实现一些自定义逻辑(例如,通知组中的其他客户端),这是有意义的。但有没有办法在不创建Hub方法的情况下将Javascript客户端添加到组中,以防您不需要任何自定义逻辑。像这样:

myHub.Groups.Join("groupName");

而不是

myHub.server.joinGroup("groupName");

1 个答案:

答案 0 :(得分:0)

没有直接从JS客户端访问Groups的快捷方式。 组由服务器管理,因此您无论如何都需要通知服务器。您可以自定义SignalR以您描述的方式工作,但似乎比在您的集线器中保留3行方法要麻烦得多。

对于客户端,您只需定义一个包装器即可获得所需的语法:

myHub.Groups = {
    Join: function() {
        return myHub.server.joinGroup("groupName");
    }
};