Skip to content

Commit

Permalink
[fix] Rename the 'close' event to 'conclude'
Browse files Browse the repository at this point in the history
Avoid collisions with the `stream.Writable` `'close'` event.
  • Loading branch information
lpinca committed Mar 6, 2018
1 parent fb05059 commit 7fb82a3
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 22 deletions.
8 changes: 4 additions & 4 deletions lib/receiver.js
Expand Up @@ -23,11 +23,11 @@ class Receiver extends stream.Writable {
/**
* Creates a Receiver instance.
*
* @param {String} binaryType The type for binary data
* @param {Object} extensions An object containing the negotiated extensions
* @param {Number} maxPayload The maximum allowed message length
* @param {String} binaryType The type for binary data
*/
constructor (extensions, maxPayload, binaryType) {
constructor (binaryType, extensions, maxPayload) {
super();

this._binaryType = binaryType || constants.BINARY_TYPES[0];
Expand Down Expand Up @@ -430,7 +430,7 @@ class Receiver extends stream.Writable {
this._loop = false;

if (data.length === 0) {
this.emit('close', 1005, '');
this.emit('conclude', 1005, '');
this.end();
} else if (data.length === 1) {
return error(RangeError, 'invalid payload length 1', true, 1002);
Expand All @@ -447,7 +447,7 @@ class Receiver extends stream.Writable {
return error(Error, 'invalid UTF-8 sequence', true, 1007);
}

this.emit('close', code, buf.toString());
this.emit('conclude', code, buf.toString());
this.end();
}

Expand Down
10 changes: 5 additions & 5 deletions lib/websocket.js
Expand Up @@ -118,9 +118,9 @@ class WebSocket extends EventEmitter {
*/
setSocket (socket, head, maxPayload) {
const receiver = new Receiver(
this._binaryType,
this._extensions,
maxPayload,
this._binaryType
maxPayload
);

this._sender = new Sender(socket, this._extensions);
Expand All @@ -130,7 +130,7 @@ class WebSocket extends EventEmitter {
receiver[kWebSocket] = this;
socket[kWebSocket] = this;

receiver.on('close', receiverOnClose);
receiver.on('conclude', receiverOnConclude);
receiver.on('drain', receiverOnDrain);
receiver.on('error', receiverOnError);
receiver.on('message', receiverOnMessage);
Expand Down Expand Up @@ -678,13 +678,13 @@ function abortHandshake (websocket, stream, message) {
}

/**
* The listener of the `Receiver` `'close'` event.
* The listener of the `Receiver` `'conclude'` event.
*
* @param {Number} code The status code
* @param {String} reason The reason for closing
* @private
*/
function receiverOnClose (code, reason) {
function receiverOnConclude (code, reason) {
const websocket = this[kWebSocket];

websocket._socket.removeListener('data', socketOnData);
Expand Down
36 changes: 23 additions & 13 deletions test/receiver.test.js
Expand Up @@ -25,7 +25,7 @@ describe('Receiver', function () {
it('parses a close message', function (done) {
const receiver = new Receiver();

receiver.on('close', (code, data) => {
receiver.on('conclude', (code, data) => {
assert.strictEqual(code, 1005);
assert.strictEqual(data, '');
done();
Expand Down Expand Up @@ -334,7 +334,9 @@ describe('Receiver', function () {
const perMessageDeflate = new PerMessageDeflate();
perMessageDeflate.accept([{}]);

const receiver = new Receiver({ 'permessage-deflate': perMessageDeflate });
const receiver = new Receiver(undefined, {
'permessage-deflate': perMessageDeflate
});
const buf = Buffer.from('Hello');

receiver.on('message', (data) => {
Expand All @@ -354,7 +356,9 @@ describe('Receiver', function () {
const perMessageDeflate = new PerMessageDeflate();
perMessageDeflate.accept([{}]);

const receiver = new Receiver({ 'permessage-deflate': perMessageDeflate });
const receiver = new Receiver(undefined, {
'permessage-deflate': perMessageDeflate
});
const buf1 = Buffer.from('foo');
const buf2 = Buffer.from('bar');

Expand Down Expand Up @@ -398,7 +402,7 @@ describe('Receiver', function () {
});

it('resets `totalPayloadLength` only on final frame (unfragmented)', function (done) {
const receiver = new Receiver({}, 10);
const receiver = new Receiver(undefined, {}, 10);

receiver.on('message', (data) => {
assert.strictEqual(receiver._totalPayloadLength, 0);
Expand All @@ -411,7 +415,7 @@ describe('Receiver', function () {
});

it('resets `totalPayloadLength` only on final frame (fragmented)', function (done) {
const receiver = new Receiver({}, 10);
const receiver = new Receiver(undefined, {}, 10);

receiver.on('message', (data) => {
assert.strictEqual(receiver._totalPayloadLength, 0);
Expand All @@ -426,7 +430,7 @@ describe('Receiver', function () {
});

it('resets `totalPayloadLength` only on final frame (fragmented + ping)', function (done) {
const receiver = new Receiver({}, 10);
const receiver = new Receiver(undefined, {}, 10);
let data;

receiver.on('ping', (buf) => {
Expand All @@ -450,11 +454,13 @@ describe('Receiver', function () {
const perMessageDeflate = new PerMessageDeflate();
perMessageDeflate.accept([{}]);

const receiver = new Receiver({ 'permessage-deflate': perMessageDeflate });
const receiver = new Receiver(undefined, {
'permessage-deflate': perMessageDeflate
});
const results = [];
const push = results.push.bind(results);

receiver.on('close', push).on('message', push);
receiver.on('conclude', push).on('message', push);
receiver.on('finish', () => {
assert.deepStrictEqual(results, ['', 1005, '']);
done();
Expand Down Expand Up @@ -485,7 +491,9 @@ describe('Receiver', function () {
const perMessageDeflate = new PerMessageDeflate();
perMessageDeflate.accept([{}]);

const receiver = new Receiver({ 'permessage-deflate': perMessageDeflate });
const receiver = new Receiver(undefined, {
'permessage-deflate': perMessageDeflate
});

receiver.on('error', (err) => {
assert.ok(err instanceof RangeError);
Expand Down Expand Up @@ -602,7 +610,9 @@ describe('Receiver', function () {
const perMessageDeflate = new PerMessageDeflate();
perMessageDeflate.accept([{}]);

const receiver = new Receiver({ 'permessage-deflate': perMessageDeflate });
const receiver = new Receiver(undefined, {
'permessage-deflate': perMessageDeflate
});

receiver.on('error', (err) => {
assert.ok(err instanceof RangeError);
Expand Down Expand Up @@ -736,7 +746,7 @@ describe('Receiver', function () {
});

it('emits an error if a frame payload length is bigger than `maxPayload`', function (done) {
const receiver = new Receiver({}, 20 * 1024);
const receiver = new Receiver(undefined, {}, 20 * 1024);
const msg = crypto.randomBytes(200 * 1024);

const list = Sender.frame(msg, {
Expand All @@ -763,7 +773,7 @@ describe('Receiver', function () {
const perMessageDeflate = new PerMessageDeflate({}, false, 25);
perMessageDeflate.accept([{}]);

const receiver = new Receiver({
const receiver = new Receiver(undefined, {
'permessage-deflate': perMessageDeflate
}, 25);
const buf = Buffer.from('A'.repeat(50));
Expand All @@ -787,7 +797,7 @@ describe('Receiver', function () {
const perMessageDeflate = new PerMessageDeflate({}, false, 25);
perMessageDeflate.accept([{}]);

const receiver = new Receiver({
const receiver = new Receiver(undefined, {
'permessage-deflate': perMessageDeflate
}, 25);
const buf = Buffer.from('A'.repeat(15));
Expand Down

0 comments on commit 7fb82a3

Please sign in to comment.