我正在 Catalyst 中开发一个 PSGI 应用程序,它使用 WebSockets 在前端和后端之间进行通信。基本上我们所做的是,一旦用户会话通过身份验证,我们就打开一个到后端的 websocket,在客户端(Angular)上加载 JS 应用程序,并通过后端从/到后端检索任何请求的数据或任务websocket(使用 AnyEvent 基于事件)。
该系统运行良好,但有一个非常烦人的问题:
每次用户重新加载页面时,websocket 都会被杀死。这是我们预期会发生的事情,因为套接字是通过 JS 打开的(在页面刷新时重新加载)。对于最终的实现,这不会是一个问题(我们只是在每次页面重新加载时将用户重定向到登录页面)。但是在开发过程中,这显然是很烦人的。每次前端开发人员对 JS 做一个小改动,他都必须重新登录,等等。
我会尽量避免在 CGI 中开发整个东西,所以它可以用于开发。
有人对此有解决方案吗?是否有可以使用的特定 websocket 开发服务器?
目前 PSGI 应用程序正在 Twiggy 上运行。奇怪的是,在某些机器上它是刷新安全的,而在其他机器上则不是(相同的操作系统、twiggy、perl、催化剂版本)。
任何帮助将非常感激!