sinch-rtc
Version:
RTC JavaScript/Web SDK
50 lines (49 loc) • 1.59 kB
TypeScript
import { Message } from "./";
import { SymmetricKey } from "./models";
export interface Protocol {
decode(data: string, key: SymmetricKey): {
transport: any;
message: Message;
} | null;
encode(message: Message, key: SymmetricKey): string[];
}
export declare class ProtocolV10 implements Protocol {
Version: string;
private sessionBuffer;
decode(data: string, key: SymmetricKey): {
transport: any;
message: Message;
} | null;
encode(message: Message, key: SymmetricKey): string[];
private prepareMessage;
private encodeClient;
/**
* Prepares actual MXP message format used within protocol
* @param version - MXP protocol version
* @param sessionId - ULID of current session
* @param msgId - determines whether message is single-part or multi-part
* @param partNo - index of particular part
* @param partTotal - number of all parts
* @param data - base64 encoded encrypted payload
*/
private buildTransportMessage;
/**
* Returns dictionary containing transport data parts from MXP message
* @param raw -
*/
static getMXPDataParts(raw: string): Record<string, string>;
/**
*
* @param payload - whole payload encrypted
* @param part - number of message in sequence
* @param chunkSize - constant value of maximum part size
*/
private payloadSlice;
private serialize;
private addBody;
private addClient;
private addValues;
}
export declare class ProtocolV10Factory {
static create(): ProtocolV10;
}