如何终止乘客的非活动websocket连接

问题描述 投票:-1回答:2

过去几天,我们正在努力应对非活动的websocket连接。问题可能出在网络层面。我想询问是否有任何开关/配置选项为独立模式下的Pushion Passenger的websocket连接设置超时。

passenger
2个回答
0
投票

您应该在应用程序级别解决此问题,因为在其他层中解决它将更加丑陋(对websocket的了解较少)。

使用Passenger Standalone,您可以尝试设置max_requests。这应该导致应用程序进程半定期重新启动,并且当关闭进程时,Passenger通常应该中止websocket连接。

如果你想要更多地控制重启期,你也可以使用例如每隔一段时间执行rolling restarts的cron作业,这对用户来说也不应该是显而易见的。


0
投票

Ruby和Passenger中的Websockets(也可能是node.js)不是服务器的“本机”。相反,您的应用程序“劫持”套接字并控制所有细节(超时,解析等)。

这意味着必须在应用程序层(或您正在使用的任何框架)中实现解决方案,因为Passenger不再保留有关套接字的任何信息。

我知道这不是你想要的答案,但这是事实。

一些方法使用本机websockets,其中服务器控制websocket连接(超时,解析等',即Ruby MRI碘服务器),但是大多数websockets被“劫持”到服务器并且应用程序完全控制和拥有连接。

© www.soinside.com 2019 - 2024. All rights reserved.