gpt4 book ai didi

c# - 如何从 signalr hub 中的用户 ID 获取连接 ID

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:54 24 4
gpt4 key购买 nike

我有一个具有类似功能的信号器集线器

public void SendSurveyNote(int surveyId,List<string> users){}

这里我想将列表中的所有用户添加到一个组 "Survey_"+ surveyId 然后向该组发送一条消息。但我只有用户 ID,但加入群组需要连接 ID。那我怎么办呢。另外我想知道在没有组的情况下向每个用户发送消息会不会是一个性能问题?

当我像这样添加一个新调查时,我会调用上面的函数

private static HubConnection hubConnection = new HubConnection(ConfigurationManager.AppSettings["BaseUrl"]);
private static IHubProxy hubProxy = hubConnection.CreateHubProxy("myHub");
await hubConnection.Start();
hubProxy.Invoke("SendSurveyNote", model.Id, users);

谢谢

最佳答案

您可以访问 Context 中的连接 ID。您需要在 OnConnected 中建立组。在您的集线器上观察以下实现,我们将其称为 MyHub。我们还将按 Context.User.Identity.Name 分组,为每个用户建立一个唯一的组,但这可以是您希望分组依据的任何值。

public class MyHub: Hub
{
public override Task OnConnected()
{
Groups.Add(Context.ConnectionId, Context.User.Identity.Name)

return base.OnConnected();
}
}

参见 Working with Groups in SignalR了解更多信息

关于c# - 如何从 signalr hub 中的用户 ID 获取连接 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31525283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com