如何在SignalR持久连接中连接时发送组名称

本文关键字:连接 SignalR | 更新日期: 2023-09-27 18:00:47

我需要向不同的用户组发送数据。我本可以在这里使用集线器概念,但唯一的SignalR Android客户端库"SignalA"https://github.com/erizet/SignalA没有集线器的实现,所以我不得不使用持久连接及其组概念。现在我在SignalR文档网站上看到了这种OnConnected方法

protected override Task OnConnected(IRequest request, string connectionId)
{
    return Groups.Add(connectionId, "foo");
}

我希望用户能够加入不同的组,所以当他连接时,他将传递一个他想添加到的组名称。我如何在客户端传递组名,并在上面的方法中接收它,而不是使用硬编码的"foo"?

如果有人能给我指一个SignalRjava客户端库,我也会很高兴,因为我没有找到任何实现。

感谢

如何在SignalR持久连接中连接时发送组名称

您有两个选项:

  1. 传递查询字符串参数(如果java客户端支持)作为连接信息的一部分。这样,您就可以通过查询字符串传递要加入的组列表。如果您这样做,那么您可以使用request。QueryString访问查询字符串并执行所需的任何处理
  2. 连接后,您可以向服务器发送消息,处理OnReceived并传递组列表

任何一种都有效

我知道这是一个老问题,但我认为值得一提的是SignalA现在支持集线器。