我为websocket客户端编写了一个PHP类,允许您从PHP连接到websocket服务器。它工作得非常好,只是它只能在无限循环中读取数据。在websocket连接中,服务器或客户端可以根据需要随时发送数据。不幸的是,socket_select
,socket_read
和socket_recv
不会阻止其他套接字发送任何数据 - socket_select
将立即返回,socket_read
和socket_recv
将返回一个空字符串。我尝试让进程保持睡眠状态,直到它收到SIGPOLL
,但这导致它无限期地睡眠。有没有办法知道在收到数据后套接字上有更多数据?
答案 0 :(得分:0)
PHP不是一个好的语言,因为它不是异步语言。我会建议Node.js或类似的东西。
我可能对PHP和websockets知之甚少,但是在你点击SIGPOLL
之前你不能直接循环它吗?