fix issue with expire messages
bump version to 0.3.1
This commit is contained in:
parent
f9469a958a
commit
a956168f55
5
dist/src/services/messagesExpire/index.js
vendored
5
dist/src/services/messagesExpire/index.js
vendored
@ -37,13 +37,14 @@ class MessagesExpire {
|
|||||||
continue;
|
continue;
|
||||||
const messages = messageQueue.getMessages();
|
const messages = messageQueue.getMessages();
|
||||||
for (const message of messages) {
|
for (const message of messages) {
|
||||||
if (!seen[message.src]) {
|
const seenKey = `${message.src}_${message.dst}`;
|
||||||
|
if (!seen[seenKey]) {
|
||||||
this.messageHandler.handle(undefined, {
|
this.messageHandler.handle(undefined, {
|
||||||
type: enums_1.MessageType.EXPIRE,
|
type: enums_1.MessageType.EXPIRE,
|
||||||
src: message.dst,
|
src: message.dst,
|
||||||
dst: message.src
|
dst: message.src
|
||||||
});
|
});
|
||||||
seen[message.src] = true;
|
seen[seenKey] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.realm.clearMessageQueue(destinationClientId);
|
this.realm.clearMessageQueue(destinationClientId);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "peer",
|
"name": "peer",
|
||||||
"version": "0.3.0",
|
"version": "0.3.1",
|
||||||
"description": "PeerJS server component",
|
"description": "PeerJS server component",
|
||||||
"main": "dist/peerjs.server.min.js",
|
"main": "dist/peerjs.server.min.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -66,14 +66,16 @@ export class MessagesExpire implements IMessagesExpire {
|
|||||||
const messages = messageQueue.getMessages();
|
const messages = messageQueue.getMessages();
|
||||||
|
|
||||||
for (const message of messages) {
|
for (const message of messages) {
|
||||||
if (!seen[message.src]) {
|
const seenKey = `${message.src}_${message.dst}`;
|
||||||
|
|
||||||
|
if (!seen[seenKey]) {
|
||||||
this.messageHandler.handle(undefined, {
|
this.messageHandler.handle(undefined, {
|
||||||
type: MessageType.EXPIRE,
|
type: MessageType.EXPIRE,
|
||||||
src: message.dst,
|
src: message.dst,
|
||||||
dst: message.src
|
dst: message.src
|
||||||
});
|
});
|
||||||
|
|
||||||
seen[message.src] = true;
|
seen[seenKey] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ import { MessageType } from '../../../src/enums';
|
|||||||
import { wait } from '../../utils';
|
import { wait } from '../../utils';
|
||||||
|
|
||||||
describe('MessagesExpire', () => {
|
describe('MessagesExpire', () => {
|
||||||
const createTestMessage = (): IMessage => {
|
const createTestMessage = (dst: string): IMessage => {
|
||||||
return {
|
return {
|
||||||
type: MessageType.OPEN,
|
type: MessageType.OPEN,
|
||||||
src: 'src',
|
src: 'src',
|
||||||
dst: 'dst'
|
dst,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ describe('MessagesExpire', () => {
|
|||||||
|
|
||||||
const client = new Client({ id: 'id', token: '' });
|
const client = new Client({ id: 'id', token: '' });
|
||||||
realm.setClient(client, 'id');
|
realm.setClient(client, 'id');
|
||||||
realm.addMessageToQueue(client.getId(), createTestMessage());
|
realm.addMessageToQueue(client.getId(), createTestMessage('dst'));
|
||||||
|
|
||||||
messagesExpire.startMessagesExpiration();
|
messagesExpire.startMessagesExpiration();
|
||||||
|
|
||||||
@ -53,15 +53,16 @@ describe('MessagesExpire', () => {
|
|||||||
|
|
||||||
const client = new Client({ id: 'id', token: '' });
|
const client = new Client({ id: 'id', token: '' });
|
||||||
realm.setClient(client, 'id');
|
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 => {
|
messageHandler.handle = (client, message): boolean => {
|
||||||
expect(client).to.be.undefined;
|
expect(client).to.be.undefined;
|
||||||
expect(message.type).to.be.eq(MessageType.EXPIRE);
|
expect(message.type).to.be.eq(MessageType.EXPIRE);
|
||||||
|
|
||||||
handled = true;
|
handledCount++;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
@ -71,7 +72,7 @@ describe('MessagesExpire', () => {
|
|||||||
await wait(checkInterval * 2);
|
await wait(checkInterval * 2);
|
||||||
await wait(expireTimeout);
|
await wait(expireTimeout);
|
||||||
|
|
||||||
expect(handled).to.be.true;
|
expect(handledCount).to.be.eq(2);
|
||||||
|
|
||||||
messagesExpire.stopMessagesExpiration();
|
messagesExpire.stopMessagesExpiration();
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user