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

时间:2016-10-27 07:15:39

标签: c# signalr cross-platform

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

每当用户将一个组(通过http post)留给服务器时,我希望聊天服务能够触发一些方法,例如LeaveGroup和其他一些logictics。

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

问题是:服务器/服务与信号服务器之间的最佳通信方式是什么。

请注意,我不想对每个服务器/服务的可扩展性进行评估。

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

想法? 非常感谢。

p.s

我知道这里没有涉及代码。但似乎无关紧要。我在自己的窗口服务中有自己托管的web api,因此代码几乎相同。

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

1 个答案:

答案 0 :(得分:1)

似乎此文档最适用于您尝试执行的操作: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.NET SignalR的服务器广播。

如果你真的进入可伸缩性,你可能想要考虑将你的信号通信集成到其他一些消息排队系统,但在大多数情况下这可能是过度的。