µWebSockets:一种WebSocket服务器实现
来源:互联网 发布:js对象排序函数 编辑:程序博客网 时间:2024/06/08 07:29
µWebSockets:一种WebSocket服务器实现
作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs
µWebSockets简称µWS,是一个超轻量级的、高效的、可扩展的WebSocket服务器实现,基于Node.js开发,主要特征是易于使用、完全异步的面向对象的接口,并且可以扩展到数百万的连接,与同类的产品相比,其内存占用只有竞品的几分之一,采用zlib/libpng许可证(非常宽松的许可证,适合商业应用)。
µWS的主要特性包括:
1)支持Linux、OSX、Windows
2)内建了负载平衡和支持多核
3)支持SSL/TLS安全访问,且可以与外部HTTPS服务器相集成
4)内建Permessage-deflate(读取压缩消息)
5)Node.js绑定对外暴露WS接口
6)可选择作为如Socket.IO、Primus或SocketCluster库的ws引擎
注:
1)Socket.io: https://github.com/socketio/socket.io
2)Primus: https://github.com/primus/primus
3)SocketCluster: http://socketcluster.io/
µWS的安装:
npm install --save uws
µWS与竞品的比较
竞品 内存消耗 连接性能 短消息吞吐率 长消息吞吐率libwebsockets master(1.7-1.8) µWS是其的1/14 µWS与其性能相当 µWS是其33倍的性能 µWS与其性能相当ws v1.1.0 + binary addons µWS是其的1/47 µWS是其18倍的性能 µWS是其33倍的性能 µWS是其2倍的性能WebSocket++ v0.7.0 µWS是其的1/63 µWS是其4倍的性能 µWS是其3倍的性能 µWS是其2倍的性能
以上基准测试,所有库均使用默认配置,libwebsockets以后可以换用2.0测试。
在SocketCluster中使用µWS
可以像这样使用WS引擎:
var socketCluster = new SocketCluster({ wsEngine: 'uws' });
µWS紧跟SocketCluster的开发,目标是在SocketCluster 5版中成为其默认的WebSocket引擎。
µWS的C++版
这个版本的性能最佳,遗憾的是缺少文档。查看头文件可以规避使用方面的问题。
int main(){ /* this is an echo server that properly passes every supported Autobahn test */ uWS::Server server(3000); server.onConnection([](uWS::Socket socket) { cout << "[Connection] clients: " << ++connections << endl; }); server.onMessage([](uWS::Socket socket, const char *message, size_t length, uWS::OpCode opCode) { socket.send((char *) message, length, opCode); }); server.onDisconnection([](uWS::Socket socket) { cout << "[Disconnection] clients: " << --connections << endl; }); server.run();}
0 0
- µWebSockets:一种WebSocket服务器实现
- WebSocket: HTML5一种新的协议, 实现浏览器与服务器全 双工通信(full-duplex)
- [读书笔记]WebSocket浏览器篇 HTML5 WebSockets API
- WebSocket实现与服务器通信
- Java NIO实现WebSocket服务器
- PHP-Websockets 上传文件2 优化支持php socket客户端和websocket连接websocket服务器 以守护进程方式运行编码
- html5 websocket 无法建立到服务器的连接 一种解决方法
- WebSockets
- webSockets
- WebSockets
- python 实现一个简单的 WebSocket 服务器
- 用C语言实现websocket服务器
- Laravel 即时应用的一种实现方式 Websocket
- GF 3.1.1 WebSocket support - cannot enable WebSockets
- WebSocket官方文档翻译——About HTML5 WebSockets
- WebSocket服务器
- PHP实现服务器推送第一种方案
- HTML5-WebSocket实现对服务器CPU实时监控
- C++ STL 基础及应用(2) 模板与操作符重载
- HDU 2639 Bone Collector II
- pgloader
- 2015ACM长春赛区网络赛 A题 没写完
- 深度学习_caffe (4) 基于mnist实例搭建新的神经网络&在caffe中添加层
- µWebSockets:一种WebSocket服务器实现
- listview的下拉刷新和上滑加载。
- PHP7中php.ini、php-fpm和www.conf的配置
- 第十三周阅读程序 交通类纯虚函数
- Java中的String、StringBuilder以及StringBuffer
- poj 2752
- Android 获取图片资源id
- android的ListView的分割线设置为虚线
- JavaScript的实现