SignalR核心缩放/托管

时间:2020-05-01 21:15:12

标签: signalr signalr-hub asp.net-core-signalr

我对服务器端的SignalR Core有一些疑问;

我的服务器是用ASP.NET Core编写的,它使用SignalR向用户发送通知。服务器使用控制器与客户端进行交互的端点。

1)我可以将整个项目托管在Azure App Service中并向其中添加SignalR服务吗?还是将SignalR代码拆分到自己的服务器(在需要时从“主”服务器调用)更好?

2)SignalR服务具有“无服务器”选项,根据文档所述,该选项不支持客户端在所述模式下调用任何服务器RPC。我可以在无服务器模式下运行此程序吗,因为我仅使用套接字将通知发送给客户端。还是为Azure功能保留?

3)有没有一种方法可以获取SignalR集线器中用户的连接数?如果用户与服务器没有任何连接,我想向用户发送推送消息。如果不是,建议的处理方式是什么?我当时在考虑添加一个可以计数的单例服务,但不确定是否可以大规模运行,尤其是使用SignalR服务。

谢谢。

1 个答案:

答案 0 :(得分:0)

1)更好地使用Azure SignalR。

2)与集线器一起使用。

3)如果使用Azure SignalR,则只能从门户网站中看到它。在代码中,无论是否使用Azure SignalR,都可以将用户ID保存在某些var中并计算连接数。如果您有多个集线器和服务器,则需要做更多的事情(例如,如果使用redis-backplane)。