From 5b15237b9541d9ca2a3347ef86cd22e9933fa69b Mon Sep 17 00:00:00 2001 From: Egge <80262989+Egge7@users.noreply.github.com> Date: Tue, 16 May 2023 17:16:38 +0200 Subject: [PATCH] replace ArrayList with Queue --- relay.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/relay.ts b/relay.ts index 3b91bd7..cd7b39e 100644 --- a/relay.ts +++ b/relay.ts @@ -3,6 +3,7 @@ import {verifySignature, validateEvent, type Event} from './event.ts' import {matchFilters, type Filter} from './filter.ts' import {getHex64, getSubscriptionId} from './fakejson.ts' +import { MessageQueue } from './utils.ts' type RelayEvent = { connect: () => void | Promise @@ -122,24 +123,24 @@ export function relayInit( listeners.disconnect.forEach(cb => cb()) } - let incomingMessageQueue: string[] = [] + let incomingMessageQueue: MessageQueue = new MessageQueue() let handleNextInterval: any ws.onmessage = e => { - incomingMessageQueue.push(e.data) + incomingMessageQueue.enqueue(e.data) if (!handleNextInterval) { handleNextInterval = setInterval(handleNext, 0) } } function handleNext() { - if (incomingMessageQueue.length === 0) { + if (incomingMessageQueue.size === 0) { clearInterval(handleNextInterval) handleNextInterval = null return } - var json = incomingMessageQueue.shift() + var json = incomingMessageQueue.dequeue() if (!json) return let subid = getSubscriptionId(json)