“ 意外代码200” 是由 Rairo s Web s socket 服务器发送过期回复引起的。 他们更改了 Web socket spec, Chrome 使用较新的 spec 。
The problem seems to be caused by chrome & co implementing the new spec, "draft-ietf-hybi-thewebsocketprotocol-17". It requires the server to respond with "HTTP/1.1 101 Switching Protocols" rather than 200 OK.
解决之道是要么自己更新Railio网络插座扩展版, 要么使用其他解决方案:
这是以 PHP 写的网络套接字聊天服务器的完整演示 。
http://www.flynsarmy.com/2012/02/php-websocket-chat-application-2-0/
我用这个来实施一个实时的 HTML 聊天, 由我周围的Arch Linux 机器提供。 配置包括简单设置 Apache 和 PHP, 然后在 index. html 和 server.php 中将 IP 地址更改为服务器机器的外部 IP 地址 。
此 flynsarmy 演示包含最近版本的 PHPWebSocket, 它是一个开源网络套接字服务器, 完全以 PHP 写成, 包含在单个文件中 。 演示钩可分为三个回调 : 连接、 回复和断开 。
对我来说,重要的是, 网络套接字协议只支持文本, 而不是二进制, 所以在为我自己的聊天应用程序扩展它的同时, 我不得不执行自己的命令来帮助控制服务器。 在我的例子中, 命令是这样的:
!kickusers: username, another_username, a_third_username
我的服务器代码将检查所有信件的第一个字符! 如果当前将它作为命令处理 。 然后我切换字符串以获得命令“ kickuser ” 和用户列表。 然后我调用合适的踢脚功能, 传递用户名 。
因为我的假想是一个聊天客户端, 这意味着用户可以将这个命令输入到聊天中, 服务器会接受并回应它 。
在我服务器上部署这一切的方式是这样的:
- I have Apache serve the index.html page when the user goes to that location on my server in their browser. The only purpose Apache plays here is to give index.html to the client who requested it.
- The index.html page contains html to display the chat and javascript to send and recieve chat to/from the server. Basically, index.html is simply a chat client written in HTML and Javascript and it runs in the browser.
- I run server.php via ssh on the server to start up the WEB SOCKET server (totally separate from Apache) which just sits there and handles chat stuff like echoing text to the other connected clients etc.
尽管安装阿帕奇和PHP的Arch Wiki 与 Apache 和 PHP 安装 Apache 和 PHP 软件包的方式不同,您安装 Apache 和 PHP 软件包时, Apache 和 PHP 的章节对所有人都适用。 如果您想要: < a href=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
我之所以提供与Flynsarmy聊天演示的链接, 是因为他的评论很有帮助, 他写了一篇博客,