【发布时间】:2012-03-10 13:57:37
【问题描述】:
编辑: 我尝试了这个 phpwebsocket:http://www.wilky.it/Shared/phpwebsocket.zip,它在 Firefox 中工作,但我的问题仍然存在:如何让 websockets 与 Chrome 17 中的 php 服务器一起工作?
我在这里学习教程:http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/
看起来好像客户端连接,然后立即断开连接。我在控制台中注意到了这个错误:
WebSocket 握手期间出错:缺少“Sec-WebSocket-Accept”标头
我正在我的 WAMP localhost 上的 Chrome 17.0.963.56 中尝试它,并启用了 php_sockets 扩展。
我在某处看到有人提到 Chrome 更改了它所支持的内容,但没有深入探讨如何修复它。我希望有人能帮我完成它。 (我是 websockets 的新手)。
服务器:
{PATH}>php startDaemon.php
2012-02-20 07:02:51 系统:已创建套接字资源 ID #7。
2012-02-20 07:02:51 系统:套接字绑定到 localhost:8000。
2012-02-20 07:02:51 系统:开始监听 Socket。
2012-02-20 07:03:01 WebSocket:资源 id #8 已连接!
2012-02-20 07:03:01 WebSocket:请求握手...
2012-02-20 07:03:01 WebSocket:握手……
2012-02-20 07:03:01 WebSocket:完成握手......
2012-02-20 07:03:01 WebSocket:资源 id #8 已断开连接!
客户:
套接字状态:0
套接字状态:3(关闭)
【问题讨论】:
-
如果您可以打印收到的握手并发送整个响应将会很有帮助。该错误表示缺少 Accept 值,但如果没有看到握手请求和响应就很难知道。我确实注意到您链接的服务器正在发送回响应中的许多字段。
-
我正在使用该链接中的代码。我不确定你到底要什么?
-
我要求您在代码中添加检测以打印出握手请求(来自浏览器)和响应(来自服务器)。
-
我认为您正在使用这个项目:github.com/GeorgeNava/phpwebsocket,在我看来,请改用这个分叉项目:github.com/esromneb/phpwebsocket,这很好用,不会丢失
Sec-WebSocket-Accept。
标签: google-chrome websocket phpwebsocket