µWebSockets:一种WebSocket服务器实现
Posted chszs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了µWebSockets:一种WebSocket服务器实现相关的知识,希望对你有一定的参考价值。
µ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();
以上是关于µWebSockets:一种WebSocket服务器实现的主要内容,如果未能解决你的问题,请参考以下文章
Websockets:从NodeJS websocket服务器到带有WebSocketSharp的C#客户端的多个响应