我正在尝试使用 PHP 为第三方聊天服务创建机器人脚本。客户端-服务器通信基于 socket.io,但最适合 websocket - 事实上,在支持 websocket 的浏览器中无需 socket.io 即可轻松复制。然而,与Javascript不同,PHP不能简单地使用new Websocket('ws://host')
并连接。我已经查看了PHP的原始(?(套接字,例如fsockopen
和socket_create
,但我不知道该用什么 - socket_create
带有socket_select
的奢侈,但我不知道如何使用这种类型的套接字来定位IP地址以外的任何东西 - 在Javascript中,websocket连接到的URL包括会话ID。 另一方面,fsockopen
可以通过这种方式连接到 url,但我找不到任何功能来等待套接字有字节可供读取。由于服务的限制,每个聊天室都需要一个新的套接字(和会话 ID(,因此我需要能够同时让多个套接字侦听。解决这个问题的最佳方向是什么?
事实证明,PHP手册不是很明确 - 您可以使用socket_connect
连接到url,它不必是IP地址。手动实现整个 websocket 协议会很烦人 - 但它至少是功能性的。