Azure网站可以根据负载设置为自动缩放。考虑以下情况:
通常,我只运行两个实例,但如果需要,可以扩展到10个。流量很高,所以我有10个实例,多个客户端将websocket连接到实例3-8。交通减少,实例减少到2。
连接到实例3-8的客户端会发生什么?
发布于 2015-10-24 00:00:55
SignalR试图打开到特定服务器的套接字连接。因此,如果特定的服务器被拆除(就像Azure Azure的情况一样),那么客户机连接就会被关闭。
在发生这种情况时,您可以处理SignalR生命周期事件在JavaScript中重新建立连接,以便将对用户的影响降到最低。
http://www.asp.net/signalr/overview/guide-to-the-api/handling-connection-lifetime-events
例如,如果您通常运行两个实例,并且有10个用户连接。这10个用户在实例1和2上有SignalR连接,然后自动缩放触发器,现在突然提供了第三个实例。另外10个用户来了,他们在实例1、2和3上获得了SignalR连接。5个用户离开并自动缩放,缩小到两个实例。其余5个与第三个实例有SignalR连接的用户将有一个关闭的连接。您需要处理客户端上的关闭生命周期事件,以尝试在实例1或2上重新启动SignalR连接。
我假设您已经配置了一个背板,否则您可能会问,“为什么我的用户偶尔没有收到消息?!”:)
这里有一个好文章,我发现它在理解SignalR方面很有用。
https://stackoverflow.com/questions/33310666
复制相似问题