From bde96a9002a3286c417efaae79856264b8788cb1 Mon Sep 17 00:00:00 2001 From: Antonio Davi Macedo Coelho de Castro Date: Tue, 30 Jul 2019 20:40:54 -0700 Subject: [PATCH] Fix live query (#5871) * Fix live query * fix test --- src/Adapters/WebSocketServer/WSAdapter.js | 10 ++++++---- src/LiveQuery/ParseWebSocketServer.js | 17 +++++------------ 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/Adapters/WebSocketServer/WSAdapter.js b/src/Adapters/WebSocketServer/WSAdapter.js index d44ec7de..9494c9cb 100644 --- a/src/Adapters/WebSocketServer/WSAdapter.js +++ b/src/Adapters/WebSocketServer/WSAdapter.js @@ -8,14 +8,16 @@ const WebSocketServer = require('ws').Server; export class WSAdapter extends WSSAdapter { constructor(options: any) { super(options); - const wss = new WebSocketServer({ server: options.server }); - wss.on('listening', this.onListen); - wss.on('connection', this.onConnection); + this.options = options; } onListen() {} onConnection(ws) {} - start() {} + start() { + const wss = new WebSocketServer({ server: this.options.server }); + wss.on('listening', this.onListen); + wss.on('connection', this.onConnection); + } close() {} } diff --git a/src/LiveQuery/ParseWebSocketServer.js b/src/LiveQuery/ParseWebSocketServer.js index 26497cd9..1c8ebb69 100644 --- a/src/LiveQuery/ParseWebSocketServer.js +++ b/src/LiveQuery/ParseWebSocketServer.js @@ -6,21 +6,13 @@ import events from 'events'; export class ParseWebSocketServer { server: Object; - constructor( - server: any, - onConnect: Function, - config - ) { + constructor(server: any, onConnect: Function, config) { config.server = server; - const wss = loadAdapter( - config.wssAdapter, - WSAdapter, - config, - ); + const wss = loadAdapter(config.wssAdapter, WSAdapter, config); wss.onListen = () => { logger.info('Parse LiveQuery Server starts running'); }; - wss.onConnection = (ws) => { + wss.onConnection = ws => { onConnect(new ParseWebSocket(ws)); // Send ping to client periodically const pingIntervalId = setInterval(() => { @@ -47,7 +39,8 @@ export class ParseWebSocket extends events.EventEmitter { constructor(ws: any) { super(); - ws.onmessage = (request) => this.emit('message', request); + ws.onmessage = request => + this.emit('message', request && request.data ? request.data : request); ws.onclose = () => this.emit('disconnect'); this.ws = ws; }