【发布时间】:2013-12-16 00:13:22
【问题描述】:
我正在用 PHP 编写一个 websocket 服务器,它需要能够处理大量并发连接。我目前正在使用 socket_select 函数来允许它处理它们,但是当向客户端发送大量数据时,这仍然会阻止所有其他连接。有没有办法让主脚本接受传入的套接字,然后启动第二个 PHP 脚本(显然是以非阻塞方式)并将客户端套接字传递给该脚本进行处理?我知道这在 C 中是可能的,但遗憾的是,代码库无法进行迁移。
*服务器仅在 Unix 堆栈上运行,不需要与 MS 兼容的解决方案。
【问题讨论】:
-
你也许可以让这个工作......但是,你是否考虑过一个更容易做到这一点的平台,比如 Node.js?
-
是的,我开始认为我必须修改很久以前编写的 C 程序才能使其工作。我的意思是,这是我想要追求的一个有趣的项目,但此时我真的没有时间让自己加快使用新语言的套接字等并最终得到一个安全的解决方案。
标签: php multithreading sockets asynchronous websocket