“意外的代码200”是由Railo的Web套接字服务器发送过时响应引起的。他们更改了网络套接字规范,Chrome使用了更新的规范。
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.
这里的解决方案将是用户可以自己更新Railo web套接字扩展或使用一些其他的解决方案:
下面是用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编写并包含在单个文件中的开放源代码Web套接字服务器。该演示挂钩到三个回调:连接,消息接收和断开连接。
要注意,对我来说最重要的事情,是网络套接字协议支持文本而已,而不是二进制因此而延长,是为我自己的聊天应用我实现我自己的命令,以帮助控制服务器。在我的情况下,命令是这样的:“!”
!kickusers: username, another_username, a_third_username
我的服务器代码将检查所有消息的第一个字符为如果有的话会把它当作命令。然后我切分字符串以获得命令“kickusers”和用户列表。然后我调用适当的踢球功能并将其传递给用户名数组。
因为我的方案是一个聊天客户端这意味着用户可以从字面上键入此命令进入聊天服务器会接受并作出回应。
,这一切都是我的部署服务器上的方式是像这样:
- 我有当用户进入到那个位置我在他们的浏览器的服务器上的Apache服务index.html页面。 Apache在这里扮演的唯一目的是为要求的客户提供index.html。
- index.html页面包含HTML显示聊天和JavaScript来发送和收到从服务器聊天/。基本上,index.html只是一个用HTML和Javascript编写的聊天客户端,它在浏览器中运行。
- 我的服务器上运行,通过ssh server.php来启动WEB套接字服务器(Apache的完全独立),它只是坐在那里,并处理聊天类的东西呼应的文本所连接的其他客户等
虽然安装Apache和PHP的Arch wiki对安装Apache和PHP包的方式是特定的,但配置Apache和PHP的部分适用于所有。我会救你的谷歌查询,并在这里给你的链接,如果你喜欢:https://wiki.archlinux.org/index.php/LAMP
至于原型,我给的链接Flynsarmy的聊天演示的原因是因为他的评论是有帮助的,他写了一篇博客吧,它是一个非常简单但完整的例子,说明如何在php中使用web套接字来做些事情。