UNPKG

@mothepro/fancy-p2p

Version:

A quick and efficient way to form p2p groups in the browser

26 lines 1.23 kB
/* Create ArrayBuffers to send to client and server. */ const encoder = new TextEncoder; export var MessageType; (function (MessageType) { MessageType[MessageType["offer"] = 0] = "offer"; MessageType[MessageType["answer"] = 1] = "answer"; MessageType[MessageType["pranswer"] = 2] = "pranswer"; MessageType[MessageType["rollback"] = 3] = "rollback"; })(MessageType || (MessageType = {})); /** Helper to build a group proposal or rejection. */ export function buildProposal(accept, ...ids) { const data = new DataView(new ArrayBuffer(1 /* CHAR */ + 2 /* SHORT */ * ids.length)); data.setInt8(0, +accept); for (let i = 0; i < ids.length; i++) data.setUint16(1 /* CHAR */ + i * 2 /* SHORT */, ids[i], true); return data.buffer; } /** Sends a packed SDP to the server for rerouting. */ export function buildSdp(to, { type, sdp }) { const sdpBuffer = encoder.encode(sdp), data = new DataView(new ArrayBuffer(2 /* SHORT */ + 1 /* CHAR */ + sdpBuffer.byteLength)); data.setUint16(0, to, true); data.setUint8(2 /* SHORT */, MessageType[type]); new Uint8Array(data.buffer, 1 /* CHAR */ + 2 /* SHORT */).set(sdpBuffer); return data.buffer; } //# sourceMappingURL=builders.js.map