c# Singalr从后台和服务器接收数据

本文关键字:数据 服务器 Singalr 后台 | 更新日期: 2023-09-27 18:15:22

我有一个聊天SignalR服务器,支持聊天群聊天。我还有一个服务器,它实际创建组和其他组管理工具。

每当用户离开组(通过http post)到服务器时,我希望聊天服务触发一些方法,如LeaveGroup和其他一些逻辑。

我将connectionId绑定到userId,所以我得到了解析请求。

问题是:服务器/服务和信号服务器之间通信的最佳实践是什么?

请记住,我不想在每个服务器/服务的可伸缩性上妥协。

我的想法是在SignalR服务器中或多或少地托管一个web api服务器,但我似乎找不到任何可能损害性能的主题。

想法?谢谢。

p。s

我知道这里没有代码。但这似乎无关紧要。我有一个自托管的web api在我的窗口服务,所以代码是几乎相同的。

如果有必要,我很乐意提供更多的数据/信息

c# Singalr从后台和服务器接收数据

似乎这个文档最适用于你想做的事情:https://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr

它专门讨论了如何从服务器/服务应用程序与信号客户端进行通信。从客户端到服务器/服务的通信可以通过信号集线器完成,也可以通过其他web API完成。

从最佳实践的角度来看,文档特别说明(https://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-server#callfromoutsidehub):

如果您需要在长寿命对象中多次使用上下文,获取一次引用并保存它,而不是每次都获取一次时间。获取一次上下文可确保SignalR将消息发送到以与Hub方法创建客户机相同的顺序创建客户机方法调用。有关如何使用SignalR的教程上下文中的集线器,请参见使用ASP进行服务器广播。净SignalR。

如果您真的关注可伸缩性,您可能希望考虑将您的信号通信集成到其他消息队列系统中,但对于大多数情况来说,这可能是多余的。