我正在为我的Azure Webapp添加一个WebSocket处理程序。让我们说我正在写聊天服务器(虽然我不是),服务器将保留内存中所有打开连接的列表,以便所有连接的客户端可以相互通信。
现在,我已启用自动缩放,因此我的服务器可以在某个时间点扩展到2个实例。现在连接到实例1 的客户端无法与恰好连接到实例2的客户端进行通信。
为了解决这个问题,我试图找出是否可以使用Azures ARRAffinity cookie来定位特定实例,但到目前为止我发现这只是可能的:
所以我的问题,实际上它是否可能以某种方式使用websockets?你有其他建议吗?
编辑2017-11-02:这仍然是一个有趣的问题,但我已经用不同的(主要是积极的)方式解决了它:由于所有通过websocket的消息已经被序列化,因此很容易利用我已经存在的Redis缓存发布/订阅功能。所以我现在所做的是: