1

我正在尝试首次确定如何设置 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. 我如何在五秒钟后返回一条基本消息?

4

1 回答 1

2

恐怕创建一个简单的例子并不是那么简单。

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

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

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

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

于 2013-10-01T19:34:35.153 回答