我试图理解服务器端Websocket端点的实现/选项 - 特别是在使用PSGI / Plack的Perl中我有一个问题:为什么所有服务器端websocket实现都基于事件驱动的PSGI服务器(Twiggy,Tatsumaki)等等)?
我认为websocket通信是异步的,但非事件驱动的PSGI服务器(比如Starman)可以产生一个异步监听器来处理websocket方面的事情。我已经看过(但没有理解)Websocket服务器的PHP实现,那么为什么不能用PSGI完成同样的操作而不必将服务器更改为事件驱动的服务器呢?
答案 0 :(得分:1)
处理套接字的基础网络逻辑取决于平台,操作系统和特定的软件实现 最常见的三种方法是:
考虑到这一点,您确实可以创建单进程功能方式来处理套接字流量。但事实证明,这根本没有效率。这就是为什么完全异步模型在今天是主要的,因为大多数语言和平台都支持这种范例。