一个非常简单的 WebSocket 服务器

Posted

技术标签:

【中文标题】一个非常简单的 WebSocket 服务器【英文标题】:A really simple WebSocket server 【发布时间】:2011-09-12 07:21:31 【问题描述】:

有人知道同时支持75和76的简单WebSocket服务器吗?

我曾经使用 phpwebsocket(我有一点 php 经验),直到 Chrome 自己更新并搞砸了一切。

我真正需要的只是一个服务器,它将发送给它的消息回显到所有其他连接。最好是用php写的,不过真的没关系,只是我不能用node.js的方案。

【问题讨论】:

如果您不想担心您正在使用的实时基础架构,那么您可能需要调查hosted realtime web solutions。他们消除了使用一种技术的痛苦,虽然现在非常稳定,但仍然可以改变 - WebSockets,维护和更新任何解决方案,还可以帮助您处理扩展以满足需求。 就我个人而言,我觉得创建一个自定义的效果最好,因为您可以根据自己的意愿扩展它。 【参考方案1】:

如果你真的想要 PHP 并支持 WebSockets Hixie 75/76,那么phpwebsocket

但是,我建议您确实需要 Hixie 75/76 支持以及 HyBi (07, 08, 13) 支持。 Chrome 14 及更高版本仅支持 HyBi。 Firefox 6 也是如此。Microsoft 为 Internet Explorer 提供的可下载 WebSocket 原型也仅支持 HyBi。

phpwebsocket 自 2010 年 11 月以来没有更新,并且没有任何 HyBi 支持。支持 Hixe 和 HyBi 协议的几个替代方案:

python: pywebsocket(http://code.google.com/p/pywebsocket/) C:http://git.warmcat.com/cgi-bin/cgit/libwebsockets/ c#:http://superwebsocket.codeplex.com/

还有 PHP 代码 in this question 可能用于向 phpwebsocket 添加 HyBi 支持。

另外,你没有说为什么 node.js 不是一个选项。如果这是一个选项,那么Socket.IO 可能是您获得工作解决方案的最快途径,因为它提供了客户端 javascript 库(除了服务器之外),它具有会话管理示例/食谱,并且它具有自动回退到 long - 轮询不支持 WebSockets 的浏览器。

【讨论】:

【参考方案2】:

http://code.google.com/p/pywebsocket/怎么样

需要 Python 经验

【讨论】:

【参考方案3】:

Pywebsocket 已放弃对 hixie 的支持。

使用

--allow-draft75

与旧版浏览器兼容。

【讨论】:

以上是关于一个非常简单的 WebSocket 服务器的主要内容,如果未能解决你的问题,请参考以下文章

简单又好用的聊天室技术——WebSocket

Java Socket 和 JS WebSocket

WebSocket 简单实现

python实现websocket服务器,可以在web实时显示远程服务器日志

web Socket (基本使用)

websocket协议详解