tightening up queue

pull/1177/head
Vincent 5 years ago
parent 00122333ff
commit e09372eacf

@ -1,32 +1,27 @@
import * as _ from 'lodash'; import * as _ from 'lodash';
import * as Data from '../../../js/modules/data'; import * as Data from '../../../js/modules/data';
import { textsecure } from '../../window'; import { ConversationController } from '../../window';
import { EventEmitter } from 'events'; import { EventEmitter } from 'events';
import { import {
MessageQueueInterface, MessageQueueInterface,
MessageQueueInterfaceEvents, MessageQueueInterfaceEvents,
GroupMessageType,
} from './MessageQueueInterface'; } from './MessageQueueInterface';
import { import {
ClosedGroupMessage, ClosedGroupMessage,
ContentMessage, ContentMessage,
OpenGroupMessage, OpenGroupMessage,
SessionResetMessage, SessionRequestMessage,
SyncMessage,
} from '../messages/outgoing'; } from '../messages/outgoing';
import { PendingMessageCache } from './PendingMessageCache'; import { PendingMessageCache } from './PendingMessageCache';
import { import {
JobQueue, JobQueue,
TypedEventEmitter,
MessageUtils,
SyncMessageUtils, SyncMessageUtils,
TypedEventEmitter,
} from '../utils'; } from '../utils';
import { PubKey } from '../types'; import { PubKey } from '../types';
import { ConversationController } from '../../window';
import { MessageSender } from '.'; import { MessageSender } from '.';
import { SessionProtocol } from '../protocols'; import { SessionProtocol } from '../protocols';
import { generateFakePubkey } from '../../test/test-utils/testUtils';
export class MessageQueue implements MessageQueueInterface { export class MessageQueue implements MessageQueueInterface {
public readonly events: TypedEventEmitter<MessageQueueInterfaceEvents>; public readonly events: TypedEventEmitter<MessageQueueInterfaceEvents>;
@ -99,8 +94,7 @@ export class MessageQueue implements MessageQueueInterface {
// Open groups // Open groups
if (message instanceof OpenGroupMessage) { if (message instanceof OpenGroupMessage) {
// No queue needed for Open Groups; send directly // No queue needed for Open Groups; send directly
const rawMessage = MessageUtils.toRawMessage(message.group, message); await MessageSender.sendToOpenGroup(message);
await MessageSender.send(message);
return true; return true;
} }
@ -145,9 +139,8 @@ export class MessageQueue implements MessageQueueInterface {
// Message sent; remove from cache // Message sent; remove from cache
void this.pendingMessageCache.remove(message); void this.pendingMessageCache.remove(message);
}) })
.catch(() => { // Message failed to send
// Message failed to send .catch(() => null);
});
} }
}); });
} }
@ -160,7 +153,7 @@ export class MessageQueue implements MessageQueueInterface {
} }
private async queue(device: PubKey, message: ContentMessage) { private async queue(device: PubKey, message: ContentMessage) {
if (message instanceof SessionResetMessage) { if (message instanceof SessionRequestMessage) {
return; return;
} }

@ -32,14 +32,31 @@ describe('MessageQueue', () => {
const message = TestUtils.generateChatMessage(); const message = TestUtils.generateChatMessage();
const rawMessage = MessageUtils.toRawMessage(device, message); const rawMessage = MessageUtils.toRawMessage(device, message);
// SyncMessageUtils.from(message);
const myOpenGroup = new OpenGroup({conversationId: 'publicChat:1@feedback.getsession.org'}); });
console.log('[vince] myOpenGroup.server:', myOpenGroup.server);
console.log('[vince] myOpenGroup.channel:', myOpenGroup.channel); it('can add directly to jobs queue', async () => {
console.log('[vince] myOpenGroup.conversationId:', myOpenGroup.conversationId); const device = TestUtils.generateFakePubkey();
const message = TestUtils.generateChatMessage();
const rawMessage = MessageUtils.toRawMessage(device, message);
});
it('can queue', async () => {
const device = TestUtils.generateFakePubkey();
const message = TestUtils.generateChatMessage();
const rawMessage = MessageUtils.toRawMessage(device, message);
});
it('can process pending', async () => {
const device = TestUtils.generateFakePubkey();
const message = TestUtils.generateChatMessage();
const rawMessage = MessageUtils.toRawMessage(device, message);
}); });
}); });

Loading…
Cancel
Save