我发现的所有示例都使用特殊的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");
答案 0 :(得分:0)
没有直接从JS客户端访问Groups的快捷方式。 组由服务器管理,因此您无论如何都需要通知服务器。您可以自定义SignalR以您描述的方式工作,但似乎比在您的集线器中保留3行方法要麻烦得多。
对于客户端,您只需定义一个包装器即可获得所需的语法:
myHub.Groups = {
Join: function() {
return myHub.server.joinGroup("groupName");
}
};