是否可以使用Web套接字的本机PHP支持?

71 javascript php websocket

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

这是来自php.net的Socket Create参考,但这看起来比Web Sockets更低.

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

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

PHP Socket Create是否相关?PHP本身是否支持Web套接字?我想在PHP实现的正确方向上的一点是有帮助的.

实际上这个教程有一个到phpwebsockets的断开链接......这是应该使用的库吗?

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

leg*_*ter 47

就本机可用的标准PHP WebSocket对象而言,没有原生支持.

你需要使用一个库.

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

看到:

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

另见:Ajax推送系统

  • 主机提供商支持这个吗?小的...像godaddy.com,wiredtree.com,我基本上只是选择一个库,然后将其放入我的网络文件夹......事情是我在LAMP堆栈上...... (5认同)
  • @Gracchus - 什么leggetter说的是非常常见的知识.打开外部世界的插座带来许多问题,特别是当服务通常由新手编码器设计时.您有流程管理问题,连接管理问题,安全问题(每个开放端口基本上是进入系统的一扇门)等.此外,如果服务没有被破坏,没有安全问题,并且运行效率高,它基本上成为提供商的竞争服务.没有多少商业模式可以接受这样的事情. (5认同)
  • 我查看了Wired Tree的技术支持,他们说没关系. (2认同)

Bas*_*asj 6

是的,可以非常简单地执行 PHP + Websocket,无需任何第三方库(如经常提到的 Ratchet)。

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

您可以在此处找到更多详细说明:How to create websockets server in PHP

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