博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
µWebSockets:一种WebSocket服务器实现
阅读量:6535 次
发布时间:2019-06-24

本文共 1686 字,大约阅读时间需要 5 分钟。

版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/51475844

µWebSockets:一种WebSocket服务器实现

作者: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:

2)Primus:
3)SocketCluster:

µ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();}
你可能感兴趣的文章
10.30T2 二分+前缀和(后缀和)
查看>>
[emuch.net]MatrixComputations(7-12)
查看>>
vuex视频教程
查看>>
Java 线程 — ThreadLocal
查看>>
安居客爬虫(selenium实现)
查看>>
-----二叉树的遍历-------
查看>>
ACM北大暑期课培训第一天
查看>>
Scanner类中输入int数据,再输入String数据不正常的
查看>>
F. Multicolored Markers(数学思维)
查看>>
Python中cPickle
查看>>
Centos7安装搜狗输入法
查看>>
nodjs html 转 pdf
查看>>
再看BP神经网络
查看>>
SQL学习——基本语法
查看>>
SQL学习——数据类型
查看>>
Content Assist not available at the current location
查看>>
java同学毕业后学习之路建议
查看>>
Python字典
查看>>
ofstream 的中文目录问题
查看>>
Android存储方式之SQLite的使用
查看>>