Php 如何在我的服务器上实现Websocket(RFC6455)?

Php 如何在我的服务器上实现Websocket(RFC6455)?,php,websocket,Php,Websocket,我在谷歌上搜索过,在stackoverflow这里有一些关于它的问题。 问题是它们中的许多都是旧的,所以我猜它们使用的是旧的和不推荐的协议,而不是RFC6455。我不知道是因为这个还是我做错了什么,但是当我尝试的时候,它不起作用 所以 如果我理解得很好,我就可以使用合适的客户端(Javascript)和服务器(PHP)代码实现WebSocket,而无需配置Apache服务器。我是对的 为什么我找到的所有示例都要求我转到命令行并执行以下操作 php-qc:\path\to\file\Websock

我在谷歌上搜索过,在stackoverflow这里有一些关于它的问题。 问题是它们中的许多都是旧的,所以我猜它们使用的是旧的和不推荐的协议,而不是RFC6455。我不知道是因为这个还是我做错了什么,但是当我尝试的时候,它不起作用

所以

  • 如果我理解得很好,我就可以使用合适的客户端(Javascript)和服务器(PHP)代码实现WebSocket,而无需配置Apache服务器。我是对的

  • 为什么我找到的所有示例都要求我转到命令行并执行以下操作

    php-qc:\path\to\file\Websocket\Server.php

  • 在我发现的实现中,有一个默认的服务器和端口。我必须将它们更改为用于普通网页的服务器(localhost)和端口吗?或者我应该告诉我的服务器监听另一个端口并将其用于websocket通信吗

  • 在哪里可以找到Websockets(RFC6455)的良好PHP实现

  • 是的,没错

  • 因为Websocket服务器不使用web守护进程来服务数据。在本例中,您正在完全用PHP编写服务器守护程序

  • 您需要选择一个端口,因为您没有使用web守护进程为您的WebSocket提供服务。任何未使用的端口都可以

  • 试试(主站点)。我们已经在生产中使用devmaster分支几个月了,我们没有遇到任何问题。这是我们发现的唯一一个开箱即用的解决方案,可以同时适用于Firefox客户端和iPhone

  • 是的,没错

  • 因为Websocket服务器不使用web守护进程来服务数据。在本例中,您正在完全用PHP编写服务器守护程序

  • 您需要选择一个端口,因为您没有使用web守护进程为您的WebSocket提供服务。任何未使用的端口都可以

  • 试试(主站点)。我们已经在生产中使用devmaster分支几个月了,我们没有遇到任何问题。这是我们发现的唯一一个开箱即用的解决方案,可以同时适用于Firefox客户端和iPhone


  • 谢谢它似乎不起作用,因为我使用相同的端口为网页和WebSocket提供服务。我既不了解Ratchet是如何工作的,也不了解它的配置,但它确实工作了。现在,为了在我的服务器中实现它,我将对其进行修改并充分了解其工作原理。@Oriol:仅供参考,您链接的库似乎只执行HyBi 10和13,而不是RFC 6455。我想你问RFC6455是有原因的我想要RFC6455,因为它是最新版本,所以我想它是最安全和最好的,并且受到最新浏览器的支持。但我认为HyBi 13和RFC 6455是一样的,我错了吗?@Oriol:检查一下这两个链接之间的差异-需要注意的主要是13仍然是一个草案(在RFC6455解决之前还有一些修订)。从功能上讲,我不确定两者的区别。但我不明白为什么说Websocket版本13是Hybi13,而说版本13是RFC6455。谢谢!它似乎不起作用,因为我使用相同的端口为网页和WebSocket提供服务。我既不了解Ratchet是如何工作的,也不了解它的配置,但它确实工作了。现在,为了在我的服务器中实现它,我将对其进行修改并充分了解其工作原理。@Oriol:仅供参考,您链接的库似乎只执行HyBi 10和13,而不是RFC 6455。我想你问RFC6455是有原因的我想要RFC6455,因为它是最新版本,所以我想它是最安全和最好的,并且受到最新浏览器的支持。但我认为HyBi 13和RFC 6455是一样的,我错了吗?@Oriol:检查一下这两个链接之间的差异-需要注意的主要是13仍然是一个草案(在RFC6455解决之前还有一些修订)。在功能上,我不确定两者的区别。但我不明白为什么说Websocket版本13是Hybi13,而说版本13是RFC6455。