UNPKG

sinch-rtc

Version:

RTC JavaScript/Web SDK

39 lines 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionMessageBuffer = void 0; class SessionMessageBuffer { constructor() { this.messageBuffer = {}; } addTransportMessage(message) { const { sessionId, msgId, partNo, data } = message; if (!this.messageBuffer[sessionId]) { this.messageBuffer[sessionId] = {}; } if (!this.messageBuffer[sessionId][msgId]) { this.messageBuffer[sessionId][msgId] = {}; } this.messageBuffer[sessionId][msgId][partNo] = data; } isComplete(message) { const { sessionId, msgId, partTotal } = message; return (Object.keys(this.messageBuffer[sessionId][msgId]).length === parseInt(partTotal)); } getPayload(message) { if (!this.isComplete(message)) { return null; } else { /** All parts gathered */ const payload = []; const { sessionId, msgId } = message; for (const index of Object.keys(this.messageBuffer[sessionId][msgId]).sort()) { payload.push(this.messageBuffer[sessionId][msgId][index]); } return payload.join(""); } } } exports.SessionMessageBuffer = SessionMessageBuffer; //# sourceMappingURL=SessionMessageBuffer.js.map