【问题标题】:PHP minimal working example of Web SocketsPHP Web Sockets 的最小工作示例
【发布时间】:2013-10-08 01:47:03
【问题描述】:

我第一次尝试确定如何设置 Web 套接字,因此使用静态变量(例如 IP 地址而不是 getservbyname)的最小工作示例将帮助我了解流向何处。

我想以正确的方式做到这一点,因此 客户端和服务器都没有框架或插件。我想使用此处描述的 PHP 的本机 Web 套接字,但不会使深入类的事情过于复杂......

http://www.php.net/manual/en/intro.sockets.php

我已经整理了一些基本的 JavaScript...

window.onload = function(e)
{
 if ('WebSocket' in window)
 {
  var socket = new WebSocket('ws://'+path.split('http://')[1]+'mail/');

  socket.onopen = function () {alert('Web Socket: connected.');}

  socket.onmessage = function (event) {alert('Web Socket: '+event.data);} 
 }
}

这是我不太确定的 PHP 部分。假设我们有一个空白的 PHP 文件...

  1. 如有必要,我如何确定我的服务器的 PHP 安装是否已经具有此套接字功能?

  2. 请求本质上是作为GETPOST 请求在 例如?

  3. 我需要担心端口号吗?例如if ($_SERVER['SERVER_PORT']=='8080')

  4. 如何在初始连接时返回基本消息?

  5. 如何在五秒后返回基本消息?

【问题讨论】:

    标签: javascript php websocket


    【解决方案1】:

    恐怕创建一个简单的例子没那么简单。

    首先您需要检查 php 配置,如果服务器配置为使用设置 enable-sockets 的套接字

    然后你需要实现(或找到)一个至少遵循 websockets 的 Hybi10 规范(https://datatracker.ietf.org/doc/html/draft-ietf-hybi-thewebsocketprotocol-10)的 websocket 服务器。如果您在标头的代码中找到“幻数”258EAFA5-E914-47DA-95CA-C5AB0DC85B11,您可以确定它至少遵循 Hybi06 ...

    最后,您需要访问服务器上的管理控制台才能使用php -q server.php 执行 PHP websocket 服务器

    编辑:这是我一年前一直在使用的......它可能仍然可以在当前支持 Websockets 的浏览器中正常工作:http://code.google.com/p/phpwebsocket/source/browse/trunk/+phpwebsocket/?r=5

    【讨论】:

    • 只花了将近三年的时间才回来。我认为我错过的关键是从 Windows 命令行执行 PHP 脚本:C:\xampp\php\>php -q "D:\web\server.php"
    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2018-08-28
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多