From a956168f5513db47b87946352061d0a6d0a2fbb5 Mon Sep 17 00:00:00 2001 From: afrokick Date: Wed, 11 Mar 2020 11:02:18 +0300 Subject: [PATCH] fix issue with expire messages bump version to 0.3.1 --- dist/src/services/messagesExpire/index.js | 5 +++-- package.json | 2 +- src/services/messagesExpire/index.ts | 6 ++++-- test/services/messagesExpire/index.ts | 15 ++++++++------- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/dist/src/services/messagesExpire/index.js b/dist/src/services/messagesExpire/index.js index 9e9d6f2..bc17dfb 100644 --- a/dist/src/services/messagesExpire/index.js +++ b/dist/src/services/messagesExpire/index.js @@ -37,13 +37,14 @@ class MessagesExpire { continue; const messages = messageQueue.getMessages(); for (const message of messages) { - if (!seen[message.src]) { + const seenKey = `${message.src}_${message.dst}`; + if (!seen[seenKey]) { this.messageHandler.handle(undefined, { type: enums_1.MessageType.EXPIRE, src: message.dst, dst: message.src }); - seen[message.src] = true; + seen[seenKey] = true; } } this.realm.clearMessageQueue(destinationClientId); diff --git a/package.json b/package.json index 65b2d29..efb311b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "peer", - "version": "0.3.0", + "version": "0.3.1", "description": "PeerJS server component", "main": "dist/peerjs.server.min.js", "bin": { diff --git a/src/services/messagesExpire/index.ts b/src/services/messagesExpire/index.ts index cf94a38..9ad36e4 100644 --- a/src/services/messagesExpire/index.ts +++ b/src/services/messagesExpire/index.ts @@ -66,14 +66,16 @@ export class MessagesExpire implements IMessagesExpire { const messages = messageQueue.getMessages(); for (const message of messages) { - if (!seen[message.src]) { + const seenKey = `${message.src}_${message.dst}`; + + if (!seen[seenKey]) { this.messageHandler.handle(undefined, { type: MessageType.EXPIRE, src: message.dst, dst: message.src }); - seen[message.src] = true; + seen[seenKey] = true; } } diff --git a/test/services/messagesExpire/index.ts b/test/services/messagesExpire/index.ts index eac362b..df78176 100644 --- a/test/services/messagesExpire/index.ts +++ b/test/services/messagesExpire/index.ts @@ -8,11 +8,11 @@ import { MessageType } from '../../../src/enums'; import { wait } from '../../utils'; describe('MessagesExpire', () => { - const createTestMessage = (): IMessage => { + const createTestMessage = (dst: string): IMessage => { return { type: MessageType.OPEN, src: 'src', - dst: 'dst' + dst, }; }; @@ -27,7 +27,7 @@ describe('MessagesExpire', () => { const client = new Client({ id: 'id', token: '' }); realm.setClient(client, 'id'); - realm.addMessageToQueue(client.getId(), createTestMessage()); + realm.addMessageToQueue(client.getId(), createTestMessage('dst')); messagesExpire.startMessagesExpiration(); @@ -53,15 +53,16 @@ describe('MessagesExpire', () => { const client = new Client({ id: 'id', token: '' }); realm.setClient(client, 'id'); - realm.addMessageToQueue(client.getId(), createTestMessage()); + realm.addMessageToQueue(client.getId(), createTestMessage('dst1')); + realm.addMessageToQueue(client.getId(), createTestMessage('dst2')); - let handled = false; + let handledCount = 0; messageHandler.handle = (client, message): boolean => { expect(client).to.be.undefined; expect(message.type).to.be.eq(MessageType.EXPIRE); - handled = true; + handledCount++; return true; }; @@ -71,7 +72,7 @@ describe('MessagesExpire', () => { await wait(checkInterval * 2); await wait(expireTimeout); - expect(handled).to.be.true; + expect(handledCount).to.be.eq(2); messagesExpire.stopMessagesExpiration(); });