Skip to content

Commit 631fc3a

Browse files
authored
Do not normalize data when emitting to socket.io sockets (#376)
* Do not normalize data when emitting to socket.io sockets * Readability improvements
1 parent ff4a5ee commit 631fc3a

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/server.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import URL from 'url-parse';
22
import WebSocket from './websocket';
3+
import { SocketIO } from './socket-io';
34
import dedupe from './helpers/dedupe';
45
import EventTarget from './event/target';
56
import { CLOSE_CODES } from './constants';
@@ -92,8 +93,8 @@ class Server extends EventTarget {
9293
}
9394

9495
/*
95-
* Remove event listener
96-
*/
96+
* Remove event listener
97+
*/
9798
off(type, callback) {
9899
this.removeEventListener(type, callback);
99100
}
@@ -139,29 +140,31 @@ class Server extends EventTarget {
139140
websockets = networkBridge.websocketsLookup(this.url);
140141
}
141142

143+
let normalizedData;
142144
if (typeof options !== 'object' || arguments.length > 3) {
143145
data = Array.prototype.slice.call(arguments, 1, arguments.length);
144-
data = data.map(item => normalizeSendData(item));
146+
normalizedData = data.map(item => normalizeSendData(item));
145147
} else {
146-
data = normalizeSendData(data);
148+
normalizedData = normalizeSendData(data);
147149
}
148150

149151
websockets.forEach(socket => {
150-
if (Array.isArray(data)) {
152+
const messageData = socket instanceof SocketIO ? data : normalizedData;
153+
if (Array.isArray(messageData)) {
151154
socket.dispatchEvent(
152155
createMessageEvent({
153156
type: event,
154-
data,
157+
data: messageData,
155158
origin: this.url,
156159
target: socket.target
157160
}),
158-
...data
161+
...messageData
159162
);
160163
} else {
161164
socket.dispatchEvent(
162165
createMessageEvent({
163166
type: event,
164-
data,
167+
data: messageData,
165168
origin: this.url,
166169
target: socket.target
167170
})

src/socket-io.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { createEvent, createMessageEvent, createCloseEvent } from './event/facto
1111
*
1212
* http://socket.io/docs/
1313
*/
14-
class SocketIO extends EventTarget {
14+
export class SocketIO extends EventTarget {
1515
/*
1616
* @param {string} url
1717
*/

0 commit comments

Comments
 (0)