以相冲突为条件的 uws 叉
此分叉仅供内部使用 .
我们将不支持任何在我们主要项目之外依赖或使用它的人.
原读
UWS 系统 没有 电子法治
uws 是替换模块 ws 允许,但不能保证(当与Socket配对时,肯定不会). IO),显著性能和内存使用改进. 这个模块是特别的 仅限 与 Node.js 兼容并安装 仅限 像这样:
- 用户 能够 使用节点-吉普并 能够 安装时重新编译, 但确实 没有 要求这样做.
- npm 安装从未失败, 但是
require('uws')如果以下所有点都成立, 则会投出 :- 在安装时没有可用的 C++11 编译器 .
- 你的系统不是官方的 第1级 节点.js站台.
记住
你不能只解决问题的一部分 来修复一个堵塞的系统 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}可以这样 戏剧性 如果整个输油管运转良好,效果会很好 袜子。 iO, SocketCluster 和其他这种质量的bloat 意志 没有 给您带来预期的结果 因为这些项目已经,从一开始, 为: 瓶颈.
使用量
uws 尝试模仿 ws 尽可能的紧密,同时不牺牲太多的表演。 大多数情况下你只是交换 require('ws') 与 require('uws')数字 :
var WebSocketServer = require('uws').Server;
var wss = new WebSocketServer({ port: 3000 });
function onMessage(message) {
console.log('received: ' + message);
}
wss.on('connection', function(ws) {
ws.on('message', onMessage);
ws.send('something');
});
偏离ws
有点不相容 ws 我们的目标是达到90%的兼容性
- 二进制数据作为零副本通过
ArrayBuffer。这意味着你需要复制它 以保持它通过召回。 这也意味着你需要转换它与Buffer.from(message)如果你期望一个Node.js Buffer。 。 。 . webSocket._socket不是一个net.Socket,它只是一个具有非常基本功能的更得到功能.webSocket._socket.remote...可能会失败 你需要在连接处缓存它.webSocket像一个EventEmitter每个事件最多有一个听众.webSocket.upgradeReq只在连接处理器执行期间有效。 如果您想要在 WebSocket 的整个生命周期中保留升级Req 的属性, 您最好在 webSocket 连接时将该属性附加到 .