Skip to content

Commit dd69abb

Browse files
authoredAug 26, 2017
[fix] Reset rooms object before broadcasting from namespace (#3039)
1 parent 1f0e64a commit dd69abb

File tree

3 files changed

+21
-18
lines changed

3 files changed

+21
-18
lines changed
 

‎lib/namespace.js

+19-14
Original file line numberDiff line numberDiff line change
@@ -210,23 +210,28 @@ Namespace.prototype.remove = function(socket){
210210
Namespace.prototype.emit = function(ev){
211211
if (~exports.events.indexOf(ev)) {
212212
emit.apply(this, arguments);
213-
} else {
214-
// set up packet object
215-
var args = Array.prototype.slice.call(arguments);
216-
var packet = { type: parser.EVENT, data: args };
213+
return this;
214+
}
215+
// set up packet object
216+
var args = Array.prototype.slice.call(arguments);
217+
var packet = { type: parser.EVENT, data: args };
217218

218-
if ('function' == typeof args[args.length - 1]) {
219-
throw new Error('Callbacks are not supported when broadcasting');
220-
}
219+
if ('function' == typeof args[args.length - 1]) {
220+
throw new Error('Callbacks are not supported when broadcasting');
221+
}
221222

222-
this.adapter.broadcast(packet, {
223-
rooms: this.rooms,
224-
flags: this.flags
225-
});
223+
var rooms = this.rooms.slice(0);
224+
var flags = Object.assign({}, this.flags);
225+
226+
// reset flags
227+
this.rooms = [];
228+
this.flags = {};
229+
230+
this.adapter.broadcast(packet, {
231+
rooms: rooms,
232+
flags: flags
233+
});
226234

227-
this.rooms = [];
228-
this.flags = {};
229-
}
230235
return this;
231236
};
232237

‎lib/socket.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ var Emitter = require('events').EventEmitter;
77
var parser = require('socket.io-parser');
88
var url = require('url');
99
var debug = require('debug')('socket.io:socket');
10-
var assign = require('object-assign');
1110

1211
/**
1312
* Module exports.
@@ -115,7 +114,7 @@ Socket.prototype.buildHandshake = function(query){
115114
function buildQuery(){
116115
var requestQuery = url.parse(self.request.url, true).query;
117116
//if socket-specific query exist, replace query strings in requestQuery
118-
return assign({}, query, requestQuery);
117+
return Object.assign({}, query, requestQuery);
119118
}
120119
return {
121120
headers: this.request.headers,
@@ -160,7 +159,7 @@ Socket.prototype.emit = function(ev){
160159
}
161160

162161
var rooms = this._rooms.slice(0);
163-
var flags = assign({}, this.flags);
162+
var flags = Object.assign({}, this.flags);
164163

165164
// reset flags
166165
this._rooms = [];

‎package.json

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"dependencies": {
2727
"debug": "~2.6.6",
2828
"engine.io": "~3.1.0",
29-
"object-assign": "~4.1.1",
3029
"socket.io-adapter": "~1.1.0",
3130
"socket.io-client": "~2.0.2",
3231
"socket.io-parser": "~3.1.1"

0 commit comments

Comments
 (0)
Please sign in to comment.