我工作的公司将 Perl 用于所有“后端相关”的东西。但是,我们希望通过浏览器在服务器进程和连接的客户端之间使用一些实时通信。
我们还使用 Apache 作为带有mod.perl的 Web 服务器。所以这是我的第一个问题,我看不到任何实用的方法可以在那个星座中组合 WebSocket-Server。也许有一个我还没有找到?
唯一真正认真对待该主题的是Mojolicious。但是我还没有那么有经验,所以如果有人能说明我是否可以在我当前的 mod-perl 环境中使用它,我会很高兴。我想我也必须让它作为独立的网络服务器进程运行,不是吗?
这让我想到了第二个问题。最佳实践是什么,如果您有多个 perl 文件,它们在Apache/modperl上运行某些事情,但您希望让所有连接的用户了解这些事情。我的意思是,所有这些脚本都是通过XHR访问的,但有些操作需要其他用户了解。目前,我们做了一个经典的ajax polling。
我正在努力解决的问题是,如果有一个独立运行的专用 websocket 服务器,那么所有这些脚本也需要以某种方式与这个进程进行通信,对吗?如何做到这一点?管道?插座?共享内存?
从理论上讲,如果我选择使用这种独立的ws 服务器解决方案,我可以用任何语言编写它,对吧?甚至可以是 Ruby 或 Node。我只是想知道这是否是最好的方法,或者是否有一个很好的解决方案可以更好地集成到现有的 perl/modperl 结构中。
TL;DR
最好的做法是拥有一个独立的 Web 套接字服务器,它与您的Apache/modperl脚本的其余部分以及与其连接的客户端进行通信?