| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx

开源WebSocket服务器项目CshBBrain第一版发布

2
Java C/C++ WebSocket Go 18497 次浏览


转自http://cshbbrain.iteye.com/blog/1685217 
通过1年多的努力,今天终于发布了开源WebSocket服务器项目CshBBrain.由于本人比较懒,就使用了我的网名作为项目的名称。项目诞生于公司以前的一个股指推送服务器(见博客http://cshbbrain.iteye.com/blog/1207471),股指推送服务器每5秒就向手机、平板电脑上的网页推送最新的股指信息。由于当时本人对java NIO 研究不过深入,所以一直没有写出满意的基于NIO的websocket服务器。通过1年多的努力研究基于NIO的高性能的WebSocket服务器CshBBrain终于诞生了。

  CshBBrain服务器的实现参考了Mina,Netty等NIO框架的实现;CshBBrain服务器的特点是小巧,灵活和高性能。学习曲线低。目前源代码已经释放到google code上。使用文档后续会慢慢补充和完善。

  CshBBrain 是一个来自中国的简单的轻量级的高性能的WebSocket服务器。基于JAVA实现的,充分运用了java的多线程技术,线程池,NIO,缓冲区池等技术。项目从技术架构上采用了分层思想,分为网络传输层,协议解析层和业务层共3层。适合用于数据推送(股票行情),游戏,聊天/im等服务器程序的构建。

  网络传输层封装了网络连接的请求建立,数据读写监听,为协议解析层提供服务;协议解析层专门负责具体的协议解析,如果你有兴趣,你也可以在协议层编写自己的协议编码解码器来构建基于你自己协议的服务器;业务层在协议解析层之上做具体的业务处理,这部分的工作就是你要开发具体服务所要编写的业务代码了。

  如果你觉得Mina,Netty太复杂,庞大,难于上手,CshBBrain也许是适合你的选择。

项目源代码托管在google code上面,项目地址:http://code.google.com/p/cshbbrain/ 

12个答案

0
0

  为了更好的支持开发基于Websocket的应用,开源WebSocket服务器项目 宝贝鱼(CshBBrain)推出了与之配套的 前台WebSocket API js CshBBrainJS框架。CshBBrainJS的主要目的是与开源WebSocket服务器项目 宝贝鱼(CshBBrain和CshBBrainAIO)配合使用开发基于WebSocket的应用,当然你也可以使用CshBBrainJS框架来与其他Websocket服务器搭配使用开发应用,只要你的WebSocket服务器遵循CshBBrainJS的一些规定即可。

  CshBBrainJS前台框架的设计秉承我们一贯追求简单、轻量、高效率的理念。CshBBrainJS整个框架的开发文件只有3k多点(3765字节),压缩后只有1k多点(1524字节).目前只支持基于Webkit内核的浏览器。CshBBrainJS后面将支持 宝贝鱼(CshBBrain和CshBBrainAIO) 服务器集群和客户端负载均衡功能。

  CshBBrainJS不仅可以和开源WebSocket服务器项目 宝贝鱼(CshBBrain和CshBBrainAIO)配合使用,还可以与其他WebSocket服务器搭配使用。所以将CshBBrainJS作为一个独立的WebSocket前台框架进行发展。如果你只需要最纯粹的前台WebSocket通信框架,CshBBrainJS是个不错的选择。

googlecode下载地址:http://code.google.com/p/cshbbrainjs/downloads/list

github下载地址:https://github.com/CshBBrain/CshBBrainJS/downloads

采用CshBBrainJS作为前台框架开发的Websocket应用(数码快看:http://211.100.41.186:8989/mcms/ws/index_ws_tom.html)实例截图:




0

 http://cshbbrain.iteye.com/blog/1724397 

开源WebSocket服务器项目宝贝鱼CshBBrain V4.0.1 和 V2.0.2发布

宝贝鱼介绍:http://cshbbrain.iteye.com/blog/1685217

项目文档专栏:http://www.iteye.com/blogs/subjects/CshBBrain

 

更新的功能列表如下:

1.解决开启广播消息开关时,不能同时接入2个客户端的重大缺陷。

2.对广播消息做了重大优化,从以前一个线程发送广播消息进化到使用工作线程池中的线程并行的发送广播消息。

3.发送给所有客户端的广播消息共享一个消息的内容,避免大量重复的消息编码缓存处理工作,有效的提升广播消息的效率。

4.对框架的响应写回机制做了重大优化,服务器工作线程接收完消息,进行解码、业务处理和编码,以前是注册一个回写事件;优化后的处理方式时工作线程首先调用

回写函数向客户端回写内容,如果回写的内容不多,在工作线程中就处理完了,就避免了线程的切换,响应速度更快了;如果回写的内容多,工作线程的回写调用不能写

完全部内容,然后再注册回写事件,让Selector继续完成剩余内容的回写工作。优化后对于要求快速响应,消息内容短小的应用效果明细。

 

源代码已经更新到googlecode:http://code.google.com/p/cshbbrain/downloads/list

github:https://github.com/CshBBrain/CshBBrain/downloads

 

基于AIO的版本在github上单独创建了一个源代码库:https://github.com/CshBBrain/CshBBrainAIO

当前发布的2个版本已较稳定,可放心使用。

0
看下额
0

 国内首款基于AIO的开源WebSocket服务器 宝贝鱼 (CshBBrainAIO)正式发布。基于AIO的开源WebSocket服务器 宝贝鱼 依然采用分层的体系结构,协议层和业务层 与 基于NIO技术的 开源WebSocket服务器 宝贝鱼 (CshBBrain) 完全一样,采用基于AIO的的 宝贝鱼 进行服务器开发的方式 与 基于NIO 的宝贝鱼 开发方式完全一样。得益于彻底的分层架构,所以宝贝鱼在很短的时间内开发出基于AIO技术的新版本。

  如果你的分层 也向 宝贝鱼 一样的话,甚至 你在基于NIO 的宝贝鱼上开发的服务器 完全不用修改任何代码 只需要替换成 基于 AIO的宝贝鱼的网络传输层 的代码 一切就OK了!对,你的服务器也就变成了基于AIO的服务器了。基于AIO的服务器拥有所有基于 NIO 的宝贝鱼服务器所拥有的全部功能,但你必须将JDK换成JDK7.简单吧,简单就是 宝贝鱼 服务器所追求的理念。

 

源代码已经上传到googlecode: http://code.google.com/p/cshbbrain/downloads/list

github:https://github.com/CshBBrain/CshBBrain/downloads

 

你也可以通过svn从googlecode获取代码:http://code.google.com/p/cshbbrain/source/browse/#svn%2Ftrunk%2Fsource%2FCshBBrainAIO

由于github客户端出问题源代码暂时没有更新到github库上。

 

开源WebSocket服务器 CshBBrain 的中文名正式改为 宝贝鱼。感谢您的关注和支持。

0

CshBBrain V2.0.0版发布,添加服务器集群功能,以满足大并发量高容量的分布式系统开发需求 

开源WebSocket服务器CshBBrain V2.0.0版本发布。在V2.0.0版本中添加服务器集群功能,以满足大并发量高容量的分布式系统开发。如果你需要开发带有集群功能的WebSocket服务器,CshBBrain V2.0.0也许是非常适合你的选择。在CshBBrain V2.0.0中你可以将某个服务器设置为纯粹的集群管理服务器,或纯粹的业务节点服务器和集群管理业务节点服务器3中类型。

管理服务器启动日志:

13:16:34,008  INFO MasterServer:464 - 数据读取回写监听线程创建成功:请求数据传输监听线程0
13:16:34,008  INFO MasterServer:803 - 请求处理调度线程创建完毕
13:16:34,024  INFO MasterServer:464 - 数据读取回写监听线程创建成功:请求数据传输监听线程1
13:16:34,024  INFO MasterServer:803 - 请求处理调度线程创建完毕
13:16:34,024  INFO MasterServer:929 - 连接监听线程创建成功
13:16:34,024  INFO MasterServer:960 - 集群连接监听线程创建成功
13:16:34,039  INFO MasterServer:992 - 集群服务器准备就绪,等待集群请求到来
13:16:34,039  INFO MasterServer:1055 - 服务器准备就绪,等待请求到来
13:16:57,226  INFO ClustersDecoder:99 - the msg received: 
CshBBrain
Host:192.168.1.111
Key:789a71bbd02e47b8a45c7810
Protocol:Protocol


13:16:57,226  INFO ClustersDecoder:224 - 789a71bbd02e47b8a45c7810258EAFA5-E914-47DA-95CA-C5AB0DC85B11
13:16:57,257  INFO ClustersDecoder:340 - the response: CshBBrain
Host:192.168.1.111
Accept:fdW9PLg7Nj/qsdmwx+FXLL/k/9w=
Protocol:protocol


13:16:57,335  INFO Response:158 - 向客户端传输数据的长度 : 87

业务节点服务器启动日志:

13:16:57,054  INFO MasterServer:464 - 数据读取回写监听线程创建成功:请求数据传输监听线程0
13:16:57,070  INFO MasterServer:803 - 请求处理调度线程创建完毕
13:16:57,070  INFO MasterServer:464 - 数据读取回写监听线程创建成功:请求数据传输监听线程1
13:16:57,070  INFO MasterServer:803 - 请求处理调度线程创建完毕
13:16:57,070  INFO MasterServer:929 - 连接监听线程创建成功
13:16:57,070  INFO MasterServer:960 - 集群连接监听线程创建成功
13:16:57,085  INFO MasterServer:258 - 集群通信客户端消息处理线程创建完毕
13:16:57,085  INFO MasterServer:313 - 成功连接到集群服务器  192.168.1.220 的端口:9191
13:16:57,101  INFO MasterServer:1055 - 服务器准备就绪,等待请求到来
13:16:57,116  INFO MasterServer:992 - 集群服务器准备就绪,等待集群请求到来
13:16:57,148  INFO Client:668 - CshBBrain
Host:192.168.1.111
Key:789a71bbd02e47b8a45c7810
Protocol:Protocol


13:16:57,148  INFO ClustersCoder:162 - the response: CshBBrain
Host:192.168.1.111
Key:789a71bbd02e47b8a45c7810
Protocol:Protocol


13:16:57,226  INFO Response:158 - 向客户端传输数据的长度 : 80
13:16:57,335  INFO ClustersDecoder:99 - the msg received: 
CshBBrain
Host:192.168.1.111
Accept:fdW9PLg7Nj/qsdmwx+FXLL/k/9w=
Protocol:protocol

0

CshBBrain 1.0.2版本发布,添加了推送类应用实例:股指推送应用,优化了客户端超时检测机制.

已同步更新到GitHub和googlecode上。

添加的股指推送应用截图:对需要开发实时推送消息到客户端的童鞋提供一点参考。


GitHub下载地址:https://github.com/CshBBrain/CshBBrain/downloads

googlecode下载地址:http://code.google.com/p/cshbbrain/downloads/list

转自: 
http://cshbbrain.iteye.com/blog/1698112  

0
0
0
0
挺不错的。已经收录到:http://lib.open-open.com/view/open1348840973172.html
0
支持国内的开源项目