本人已经发布最新版本的基于NIO 的轻量级高性能的websocket服务器项目CshBBrain,博客地址:http://cshbbrain.iteye.com/blog/1685217,项目googlecode地址:http://code.google.com/p/cshbbrain/
项目github地址:https://github.com/CshBBrain/CshBBrain
项目使用交流讨论专栏:http://www.iteye.com/blogs/subjects/CshBBrain
由于遇到一个实时采集股指,并把股指的实时数据在手机,平板电脑(股指数据采用的html展示)上展示给读者;
研究了使用ajax轮询请求数据,发现给服务器构成的压力比较大,
于是决定想想其他的方法,后来发现html5的websocket可以保持与服务器的连接,所以可实现服务器往页面推送股指数据。
因为在之前我使用JAVA 的NIO写了一个专用的http服务器用于公司的产品中,性能表现还不错。所以这次决定再次使用JAVA NIO
写一个websocket的服务器,在写之前也研究了一些websocket服务器的实现,大多数的实现只能算一个demo,无多大实用价值,
也研究了一些netty,但我觉得netty还是有点臃肿,由于时间紧张;只有自己写。打算采用JAVA NIO 非阻塞模式来写,结果发现
这是一个噩梦的开始,可能是我水平还不够,对JAVA NIO非阻塞模式处理长连接的研究还不够深入。使用传统的阻塞式socket编程方式,则每个客户连接需要一个独立的线程来处理,单台服务器所能处理的连接数量将受到较大的限制,都达不到预想的性能效果。
最后决定自己写一个模拟JAVA NIO的轮询,多路复用的东西;也算是为国内想写websocket服务器的童鞋探下路。
废话不多说,请看下面的图。附带源码中,有一个股指采集程序,websocket服务器负责将采集到的最新股指推送给客户端。
整个结构大量用到多线程,线程池技术,有较多场合使用到生产-消费模式,本来想用下JAVA NIO的,结果没能实现,只好自己写了一个线程来模拟。
目前没有做性能压力测试,期待有童鞋帮忙做做这方面的测试,附件有源码(根据readme说明简单修改下就可以使用)
- 大小: 75.3 KB
分享到:
相关推荐
在本项目中,我们使用C++来实现一个WebSocket服务器,借助了libuv库来处理TCP层面的基础工作,并利用gbase作为辅助工具。 ### C++ 语言特性 C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化...
1. **WebSocket服务器**:使用C++编写,实现了WebSocket服务器端。C++是一种通用的、面向对象的编程语言,其强大的性能和底层控制能力使其成为构建网络服务的理想选择。WebSocket服务器的主要任务是接收来自客户端的...
在这个场景中,"MFC WebSocket服务器"是指使用MFC框架实现的WebSocket服务器。 MFC WebSocket服务器的实现涉及到以下几个关键知识点: 1. **MFC框架**:MFC是基于Windows API的,它提供了一种面向对象的方式来编写...
总的来说,MFC WebSocket服务器和客户端的实现涉及网络编程、协议解析、多线程等技术,是一个综合性的项目。通过这个项目,开发者不仅可以学习到MFC的应用,还能深入理解WebSocket协议的工作原理和实现方式。
在本项目中,我们将探讨如何在Linux环境下,利用C++的SOCKET编程技术来实现一个WebSocket服务器,而不依赖任何开源库。 首先,我们需要理解C++中的SOCKET编程基础。在C++中,SOCKET是网络编程的基本接口,它提供了...
通过以上步骤,你可以构建一个简单的WebSocket服务器,并可以根据需要扩展功能,例如实现安全连接(WSS)、添加认证机制、优化性能等。对于学习和理解WebSocket通信以及网络编程原理,这样的测试服务器是一个很好的...
通过以上步骤,你可以构建一个基本的ESP32 WebSocket服务器,实现远程控制硬件的功能。在实际应用中,可能还需要考虑安全性、性能优化以及更多复杂的业务逻辑。例如,添加身份验证机制,防止非法访问;或者增加心跳...
用户可通过SuperWebSocket来快速的构建可靠的,高性能的websocket服务器端应用程序。 和SuperSocket一样,SuperWebSocket可以控制台和windows服务的形式运行,同时它还支持直接运行在Website之内,这样更简化了...
在这个"WebSocket服务器端的简单实现"中,我们可能会学习到以下关键知识点: 1. **WebSocket协议基础**:WebSocket协议建立在TCP协议之上,通过握手过程建立起持久的连接。握手过程中,客户端发送一个HTTP Upgrade...
c# winform快速建websocket服务器源码 wpf快速搭建websocket服务 c#简单建立websocket服务 websocket快速搭建 随着互联网技术的飞速发展,实时交互和数据推送已成为众多应用的核心需求。传统的HTTP协议,基于请求-...
总之,“C# WebSocketServer服务器源代码.zip”提供了一个C#实现的WebSocket服务器示例,可以帮助开发者理解WebSocket通信的原理,以及在C#中如何构建和管理WebSocket服务器。通过学习和分析这些代码,可以提升你的...
易语言websocket服务器源码,websocket服务器,握手包处理,生成握手参数列,创建返回握手包,返回数据包处理,接收数据包解码,高级截取文本,取sha1,切片,ord,字节集到十六进制,十六进制到字节集,取十进制,取数值,utf8到...
这个代码例子使用了c c++实现了websocket 开发 包含了websocket服务器和websocket客户端,拥有详细的解释 这个库比libwebsocket更加简单方便,比libsocket更加高效便捷.
开发者可以通过`new WebSocket(url)`创建一个WebSocket实例,然后调用`connect()`方法连接到服务器。一旦连接建立,就可以使用`send()`方法发送数据,并监听`message`事件来接收服务器推送的数据。 压缩包内的文件...
1. 连接管理:WebSocket服务器需要处理客户端的连接请求,建立并维护一个持久的连接。这涉及到握手过程,即客户端通过发送一个Upgrade头来请求升级到WebSocket协议,服务器确认后完成握手。 2. 数据帧解析:...
一个简单的WebSocket服务器端点可能如下所示: ```java import javax.websocket.OnClose; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax....
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。 其他特点包括: (1)建立在 TCP 协议之上,服务器端的实现比较容易。 ...
nodejs-websocket 基于node创建websocket服务器 websocket 协议和 http 协议类似,http 协议有一个缺陷,只能由客户方端发起请求,服务端根据请求 url 和传过去的参数返回对应结果 websocket 是双向通信的,只要 ...
`gorilla/websocket`是一个广泛使用的Go库,提供了方便的API来创建WebSocket服务器和客户端。 首先,我们需要导入必要的包: ```go import ( "net/http" "github.com/gorilla/websocket" ) ``` 接着,定义一个...