Skip to content

Commit c26db22

Browse files
flovilmartArthur Cinader
authored andcommitted
use uWS as optional dependency for ws server (#3231)
* use uWS as optional dependency for ws server * Update ParseWebSocketServer.js
1 parent b2a3479 commit c26db22

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
"parse-server": "./bin/parse-server"
8585
},
8686
"optionalDependencies": {
87-
"bcrypt": "1.0.2"
87+
"bcrypt": "1.0.2",
88+
"uws": "^0.12.0"
8889
}
8990
}

spec/ParseWebSocketServer.spec.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ describe('ParseWebSocketServer', function() {
1414

1515
it('can handle connect event when ws is open', function(done) {
1616
var onConnectCallback = jasmine.createSpy('onConnectCallback');
17-
var parseWebSocketServer = new ParseWebSocketServer({}, onConnectCallback, 5).server;
17+
var http = require('http');
18+
var server = http.createServer();
19+
var parseWebSocketServer = new ParseWebSocketServer(server, onConnectCallback, 5).server;
1820
var ws = {
1921
readyState: 0,
2022
OPEN: 0,
@@ -27,6 +29,7 @@ describe('ParseWebSocketServer', function() {
2729
// Make sure we ping to the client
2830
setTimeout(function() {
2931
expect(ws.ping).toHaveBeenCalled();
32+
server.close();
3033
done();
3134
}, 10)
3235
});

src/LiveQuery/ParseWebSocketServer.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
import logger from '../logger';
22

33
const typeMap = new Map([['disconnect', 'close']]);
4+
const getWS = function() {
5+
try {
6+
return require('uws');
7+
} catch(e) {
8+
return require('ws');
9+
}
10+
}
411

512
export class ParseWebSocketServer {
613
server: Object;
714

815
constructor(server: any, onConnect: Function, websocketTimeout: number = 10 * 1000) {
9-
const WebSocketServer = require('ws').Server;
16+
const WebSocketServer = getWS().Server;
1017
const wss = new WebSocketServer({ server: server });
1118
wss.on('listening', () => {
1219
logger.info('Parse LiveQuery Server starts running');

0 commit comments

Comments
 (0)