PHP最小的Web套接字工作示例

时间:2013-10-01 19:09:56

标签: javascript php websocket

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

1 个答案:

答案 0 :(得分:2)

创建一个简单的例子并不是那么简单,我担心。

首先,如果服务器配置为设置为enable-sockets

的套接字,则需要检查php配置

然后你需要实现(或找到)至少遵循websockets的Hybi10规范(http://tools.ietf.org/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