gpt4 book ai didi

asp.net-core - 在 SignalR 的集线器外访问 Context.ConnectionID

转载 作者:行者123 更新时间:2023-12-04 03:44:45 25 4
gpt4 key购买 nike

我希望能够使用 SignalR 向特定用户帐户发送消息。
现在我可以发送给大家了!
我正在寻找任何方式来访问集线器外部 Controller 中的 context.ConnectionID。我尝试在 Controller 内部使用 iHubContext 访问它,在集线器内部我尝试在 session 中保存 connectionID 的值,但两者均不受支持。

从 Hub 外部的 Controller 访问 connectionID 的最佳方式是什么?

这是来自 ChatController 的操作方法,用于向所有人发送消息

public IActionResult PosaljiPoruku()
{
_hubContext.Clients.All.SendAsync("PrimljenaPoruka", "aaa");
return PartialView("SubmitFormPartial");
}

感谢任何帮助!
感谢您提供帮助!

最佳答案

What would be best way to access connectionID from Controller outside of Hub?

来自 this doc关于从集线器外部发送消息,您会发现:

当从 Hub 类外部调用集线器方法时,没有与调用关联的调用者。因此,无法访问 ConnectionIdCallerOthers 属性。

I want to be able to send message to specific user account with SignalR.

当客户端连接到 Hub 服务器时,您可以映射用户和 ConnectionId(s),然后如果您想从 Hub 外部的 Controller 操作向特定用户发送消息,您可以查询映射表以首先根据用户名等获取对应的connection Id,并将connection Id传递给action方法。

await _hubContext.Clients.Client("connection_id_here").SendAsync("PrimljenaPoruka", "aaa");

此外,您可以通过创建单用户组(每个用户一个组)来实现相同的目的,然后在您只想联系该特定用户时向该组发送消息。

await _hubContext.Clients.Group("group_name_here").SendAsync("PrimljenaPoruka", "aaa");

关于asp.net-core - 在 SignalR 的集线器外访问 Context.ConnectionID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65358068/

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