Asp.net core 信号器-通知同一台计算机上的所有客户端(应用程序)
我问题的简短版本 是否可以利用信号器基于连接端点发送通知(使用套接字连接作为bradcast标识符) 长的那个… 同一台计算机上的2个客户端(应用程序)连接到Asp.net core 信号器-通知同一台计算机上的所有客户端(应用程序),asp.net-core,signalr,Asp.net Core,Signalr,我问题的简短版本 是否可以利用信号器基于连接端点发送通知(使用套接字连接作为bradcast标识符) 长的那个… 同一台计算机上的2个客户端(应用程序)连接到asp.net核心通知后端(基于signal)。 一个应用程序向同一台计算机上的所有其他应用程序广播。 如果启动了另一个应用程序(来自同一个“家族”),它也会收到通知。这些应用程序是完全解耦的,并根据它们运行的机器进行绑定。 由于IP地址在网络绑定应用程序后面可以相同,所以使用IP地址不是一个选项 感谢您的时间和努力您可以生成特定于设备的令
asp.net核心
通知后端(基于signal
)。
一个应用程序向同一台计算机上的所有其他应用程序广播。
如果启动了另一个应用程序(来自同一个“家族”),它也会收到通知。这些应用程序是完全解耦的,并根据它们运行的机器进行绑定。
由于IP地址在网络绑定应用程序后面可以相同,所以使用IP地址不是一个选项
感谢您的时间和努力您可以生成特定于设备的令牌并将其作为集线器方法参数传递 正确加密的MAC地址是一种选择(我不建议以明文形式传递您的MAC地址,因为这非常危险) 之后,您可以基于这些唯一的设备令牌创建组,并在组内发送消息 hub方法类似于:
public async Task OnEnterSession(string deviceToken)
{
await Groups.AddToGroupAsync(Context.ConnectionId, deviceToken);
}
您可以通过调用以下命令发送面向设备的消息:
await Clients.Group(deviceToken).SendAsync("clientSideServerCallback", args);
我是从Azure通知中心Android SDK得到这个想法的。我相信您的场景在某种程度上与将通知推送到移动设备相称。这不是必需的,因为每个客户端在连接到signalr时都会生成一个唯一的connectionid。@Karney。我不明白你的评论-我怎么知道两个客户端在同一台机器上?我不知道这两个客户端是否进行固定交易。如果是这样,您可以在连接时记录他们的ID。谢谢您的回复。我会检查一下,然后回复