如何解决SignalR多台服务器之间信息推送共享

如何解决SignalR多台服务器之间信息推送共享,第1张

如何解决SignalR多台服务器之间信息推送共享

用SignalR做了个在线聊天应用,由于多台服务器之间消息推送和通知不能共享。

也就是说用户在A地区的服务器发送一条消息,另一用户在B地区的服务器不能收到消息。

现在就只一台服务器部署,程序运行一段时间后,在线人数上2k,系统运行速度就下降了。

现在怎么解决这个问题,求方案,

另外SignalR需要注意哪些性能问题,由于做这个项目时对SignalR不是很熟,也是边学边卖。

有,/// <summary>

/// 用户与服务器断开链接

/// </summary>

/// <param name="stopCalled"></param>

/// <returns></returns>

public override Task OnDisconnected(bool stopCalled)

这方法就是判断用户断开连接的时候 执行的

您好,SignalR常常依托于ASP.NET应用程序运行于IIS中,但它还可以自我托管(比如作为console winform、Windows

service).只要我们使用self-host库就可以了.

该库向所有的SignalR 2库一样,构建于OWIN (Open Web Interface for

.NET).OWIN定义了一个在.NET web 服务端和web 应用程序的抽象.

OWIN解耦了从服务端来的web 应用程序,这使得OWIN对于子托管web应用程序于自己的进程中得以表现得很完美。

不托管于IIS的原因有:

IIS的环境不能构建,比如一个已经存在的服务端程序(没有运行于IIS),

IIS的性能开销需要注意的地方,

signalr功能需要添加到一个现有的应用程序,比如运行在 Windows Service, Azure worker role, 或者 其他进程。

如果我们处于性能原因考虑使用self-host,我们推荐将程序同时在IIS中运行测试,来看看性能的具体好处。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11760748.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存