gpt4 book ai didi

signalr - 如何仅向 SignalR 中的调用方客户端发送消息?

转载 作者:行者123 更新时间:2023-12-01 22:28:42 25 4
gpt4 key购买 nike

下面是我的 SignalR Hub 类代码。

public class ChatHub : Hub
{
public void Send(string name, string message)
{
// Call the addNewMessageToPage method to update clients.
Clients.All.addNewMessageToPage(name, message);
}


public async void webAPIRequest()
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://jsonplaceholder.typicode.com/posts");
//Clients.All.addWebAPIResponseToPage(response);
Clients.Caller.addWebAPIResponseToPage(response);

await Task.Delay(1000);

response = await client.GetAsync("http://www.google.com");

Clients.Caller.addWebAPIResponseToPage(response);
//Clients.All.addWebAPIResponseToPage(response);

await Task.Delay(1000);

response = await client.GetAsync("https://jsonplaceholder.typicode.com/posts?userId=1");
//Clients.All.addWebAPIResponseToPage(response);
Clients.Caller.addWebAPIResponseToPage(response);

}

}

据我了解,

Clients.Caller.addWebAPIResponseToPage(response);

仅向调用者客户端发送消息,而

Clients.All.addWebAPIResponseToPage(响应);

向所有客户端发送消息。

  1. 我的理解正确吗?

  2. 如果不是,那么需要调用什么方法来只向调用方客户端发送消息。

最佳答案

是的,你的理解是正确的。在这里阅读 https://learn.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-server#selectingclients

您可以使用调用者,您可以提供当前用户连接 ID 并向其发送消息,或者我在某些地方看到一个名为 self 的组,它使用户可以从各种设备登录并向其发送消息。

例如,如果您同时登录桌面和移动设备,那么您将拥有两个连接 ID,但您是同一个用户。您可以将此用户添加到 self_username_unique_group_name 类型的组,然后向该组发送一条消息,该消息将发送到用户连接的所有设备。

您还可以在单​​独的表中管理单个用户的连接 ID,并根据需要向所有这些连接 ID 发送消息。

太多的灵 active 和魔力享受

关于signalr - 如何仅向 SignalR 中的调用方客户端发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44588325/

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