最可行的WebSocket/Perl解决方案

zvokhttg  于 2023-10-20  发布在  Perl
关注(0)|答案(2)|浏览(156)

我工作的公司使用Perl处理所有“后端相关”的东西。然而,我们希望在服务器进程和通过浏览器连接的客户端之间使用一些实时通信。
我们还使用Apache作为Web服务器,并使用 mod.perl。所以这是我的第一个问题,我没有看到任何实际的方法来合并的WebSocket服务器在该constelation。也许还有一个我还没有找到。
唯一真正认真对待这个主题的是 Mojolicious。但是我还没有经验,所以如果有人能说明我是否可以在我目前的mod-perl环境中使用它,我会很高兴。我想我也必须让它作为 * 独立的Web服务器进程 * 运行,不是吗?
这就引出了我的第二个问题如果你有多个perl文件,它们在 Apache/modperl 上运行,但你想让所有连接的用户都知道这些事情,那么最好的做法是什么?我的意思是,所有这些脚本都是通过 XHR 访问的,但有些操作需要其他用户获得通知。目前,我们做的是一个经典的 * 匿名投票 *。
我正在努力解决的问题是,如果有一个 * 专用的WebSocket服务器 *,它独立运行,所有这些脚本都需要以某种方式与这个进程进行通信,对吗?怎么做呢?管子?插座?共享内存?
从理论上讲,如果我选择使用这样一个独立的 ws server 解决方案,我可以用任何语言编写它,对吗?也可以是Ruby或Node。我只是想知道这是否是最好的方法,或者是否有一个好的解决方案,可以更好地集成到现有的perl/modperl结构中。

TL;DR

拥有一个 * 独立的、独立的web-socket服务器 * 来与你的 Apache/modperl 脚本的其余部分以及它所连接的客户端进行通信,这是最好的做法吗?

k4emjkb1

k4emjkb11#

您可以查看AnyEvent CPAN模块:http://metacpan.org/pod/AnyEvent
有了它,你可以编写自己的独立事件驱动的WebSocket服务器,你也可以在谷歌或AnyEvent的perldoc中找到很多例子。

blpfk2vs

blpfk2vs2#

自2012年OP问题以来,CPAN上现在有了Perl模块WebSocket,它易于使用且功能齐全。
如果你使用Apache,你可能想使用反向代理,比如:

ProxyRequests Off
ProxyPass /wss            ws://localhost:8080
ProxyPassReverse /wss     ws://localhost:8080

并让perl脚本使用WebSocket::Server

相关问题