@mothepro/fancy-p2p
Version:
A quick and efficient way to form p2p groups in the browser
42 lines (41 loc) • 1.4 kB
TypeScript
import type { Name } from '@mothepro/signaling-lobby';
import HashableSet from './HashableSet.js';
/**
* Helper to gets a list of `ClientID`s from a buffer at an offset.
*
* Unfortunately, Buffer -> UInt16Array is not WAI.
* Also, do not rely on the underlying ArrayBuffer `data.buffer`, socket may modify it...
*/
export declare function parseClientIds(offset: number, data: DataView): HashableSet<number>;
/** Helper to get name that server assigns. */
export declare function parseYourName(data: DataView): Name;
/** Helper to get status of a Client joining. */
export declare function parseClientJoin(data: DataView): {
id: number;
name: string;
};
/** Helper to get status of a Client leaving. */
export declare function parseClientLeave(data: DataView): number;
/** Helper to get status of a Client leaving. */
export declare function parseGroupChange(data: DataView): {
approve: boolean;
actor: number;
members: HashableSet<number>;
};
/** Helper to get status of a Group finalization. */
export declare function parseGroupFinalize(data: DataView): {
code: number;
cmp: number;
members: HashableSet<number>;
};
export declare function parseSdp(data: DataView): {
from: number;
sdp: {
type: RTCSdpType;
sdp: string;
};
};
export declare function parseFallback(data: DataView): {
from: number;
data: ArrayBuffer;
};