ws-parser
Version:
WebSocket stream parser
30 lines (24 loc) • 980 B
JavaScript
var Receiver = require('./receiver');
var Sender = require('./sender');
var PerMessageDeflate = require('./per-message-deflate');
var extensions = require('./extensions');
function getExtensions(res, isServer) {
var exts = res.wsExts == null ? res.headers['sec-websocket-extensions'] : res.wsExts;
if (!exts || typeof exts !== 'string') {
return;
}
exts = extensions.parse(exts);
var extensionName = PerMessageDeflate.extensionName;
var deflateOptions = exts[extensionName];
exts = {};
deflateOptions = deflateOptions !== true ? deflateOptions : {};
exts[extensionName] = new PerMessageDeflate(deflateOptions, isServer);
return exts;
}
exports.getExtensions = getExtensions;
exports.getSender = function(socket, toServer) {
return new Sender(socket, getExtensions(socket, !toServer));
};
exports.getReceiver = function(res, fromServer, maxPayload, noDecompress) {
return new Receiver(getExtensions(res, fromServer), maxPayload, noDecompress);
};