Skip to content

Commit 31dfb95

Browse files
authored
Fix installationId on LiveQuery connect (parse-community#6180)
Throws an error and prevents LiveQuery from reconnecting. Fixes Monitoring installationId. Allow installationId to be sent to and from client.
1 parent 0732575 commit 31dfb95

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

spec/ParseLiveQueryServer.spec.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,6 @@ describe('ParseLiveQueryServer', function() {
337337
query: query,
338338
requestId: requestId,
339339
sessionToken: 'sessionToken',
340-
installationId: 'installationId',
341340
};
342341
parseLiveQueryServer._handleSubscribe(parseWebSocket, request);
343342

@@ -360,7 +359,6 @@ describe('ParseLiveQueryServer', function() {
360359
expect(args[0]).toBe(requestId);
361360
expect(args[1].fields).toBe(query.fields);
362361
expect(args[1].sessionToken).toBe(request.sessionToken);
363-
expect(args[1].installationId).toBe(request.installationId);
364362
// Make sure we send subscribe response to the client
365363
expect(client.pushSubscribe).toHaveBeenCalledWith(requestId);
366364
});
@@ -518,6 +516,7 @@ describe('ParseLiveQueryServer', function() {
518516
const connectRequest = {
519517
op: 'connect',
520518
applicationId: '1',
519+
installationId: '1234',
521520
};
522521
// Trigger message event
523522
parseWebSocket.emit('message', connectRequest);

src/LiveQuery/Client.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class Client {
1616
parseWebSocket: any;
1717
hasMasterKey: boolean;
1818
sessionToken: string;
19+
installationId: string;
1920
userId: string;
2021
roles: Array<string>;
2122
subscriptionInfos: Object;
@@ -32,12 +33,14 @@ class Client {
3233
id: number,
3334
parseWebSocket: any,
3435
hasMasterKey: boolean = false,
35-
sessionToken: string
36+
sessionToken: string,
37+
installationId: string
3638
) {
3739
this.id = id;
3840
this.parseWebSocket = parseWebSocket;
3941
this.hasMasterKey = hasMasterKey;
4042
this.sessionToken = sessionToken;
43+
this.installationId = installationId;
4144
this.roles = [];
4245
this.subscriptionInfos = new Map();
4346
this.pushConnect = this._pushEvent('connected');
@@ -93,6 +96,7 @@ class Client {
9396
const response: Message = {
9497
op: type,
9598
clientId: this.id,
99+
installationId: this.installationId,
96100
};
97101
if (typeof subscriptionId !== 'undefined') {
98102
response['requestId'] = subscriptionId;

src/LiveQuery/ParseLiveQueryServer.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,8 @@ class ParseLiveQueryServer {
584584
clientId,
585585
parseWebsocket,
586586
hasMasterKey,
587-
request.sessionToken
587+
request.sessionToken,
588+
request.installationId
588589
);
589590
parseWebsocket.clientId = clientId;
590591
this.clients.set(parseWebsocket.clientId, client);
@@ -679,9 +680,6 @@ class ParseLiveQueryServer {
679680
if (request.sessionToken) {
680681
subscriptionInfo.sessionToken = request.sessionToken;
681682
}
682-
if (request.installationId) {
683-
subscriptionInfo.installationId = request.installationId;
684-
}
685683
client.addSubscriptionInfo(request.requestId, subscriptionInfo);
686684

687685
// Add clientId to subscription
@@ -703,7 +701,7 @@ class ParseLiveQueryServer {
703701
subscriptions: this.subscriptions.size,
704702
sessionToken: request.sessionToken,
705703
useMasterKey: client.hasMasterKey,
706-
installationId: request.installationId,
704+
installationId: client.installationId,
707705
});
708706
}
709707

@@ -785,7 +783,7 @@ class ParseLiveQueryServer {
785783
subscriptions: this.subscriptions.size,
786784
sessionToken: subscriptionInfo.sessionToken,
787785
useMasterKey: client.hasMasterKey,
788-
installationId: subscriptionInfo.installationId,
786+
installationId: client.installationId,
789787
});
790788

791789
if (!notifyClient) {

src/LiveQuery/RequestSchema.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ const connect = {
3636
sessionToken: {
3737
type: 'string',
3838
},
39+
installationId: {
40+
type: 'string',
41+
},
3942
},
4043
required: ['op', 'applicationId'],
4144
additionalProperties: false,

0 commit comments

Comments
 (0)