是否提供对 Web 套接字的本机 PHP 支持?

2022-08-30 08:16:04

寻找Web套接字实现的Hello World类型示例:

下面是来自 php.net 的 Socket Create 引用,但这看起来比 Web Sockets 更低级。

我想使用这个Web套接字,如 caniuse.com 现在在所有新的主流浏览器中实现。

谷歌搜索发现了这个Nets.TutsPlus网站,我可以在其中使用JavaScript示例代码...但我需要知道如何在PHP中实现服务器端,而不是Java,Ruby或Node.js如示例中所示。

PHP 套接字创建是否相关?PHP 本身是否支持 Web 套接字?我想只要在PHP实现的正确方向上提出一个点就会有所帮助。

实际上,本教程有一个指向phpwebsockets的断开链接...这是人们应该使用的库吗?

Websockets.org 有一个测试应用程序,但没有提到PHP。


答案 1

在有一个标准的PHP WebSocket对象本身可用方面,没有本机支持。

您需要使用图书馆。

接下来要考虑的是WebSocket服务器如何运行。通常PHP在Apache,Nginx(通过FastCGI)或Microsoft IIS(通过Fast CGI)上运行。对于Apache和IIS来说,这可能是一个问题,因为它并没有真正使用诸如WebSockets之类的持久连接来构建。我不确定Nginx。这就是为什么大多数PHP WebSocket库将作为独立库构建,作为自己的进程运行。

看:

注意:IE10 现已在 Windows 8 中发布

另请参阅: Ajax 推送系统


答案 2

是的,可以非常简单地做PHP + Websocket,没有任何第三方库(如Ratchet,经常被提及)。

本文是一个很好的轻量级示例。(我花了几个小时来处理复杂的解决方案,所有这些解决方案都包括一些库,直到我发现这篇有用,简单的文章)

你可以在这里找到更详细的说明:如何在PHP中创建websockets服务器

它使用一个持续运行的PHP服务器,您可以从命令行开始,并带有事件循环(类似于Node.JS方式)。100%可以使用原生PHP函数,例如 等。php websockets.phpsocket_create