@mothepro/fancy-p2p
Version:
A quick and efficient way to form p2p groups in the browser
31 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildSdp = exports.buildProposal = exports.MessageType = void 0;
/* Create ArrayBuffers to send to client and server. */
const encoder = new TextEncoder;
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 = exports.MessageType || (exports.MessageType = {}));
/** Helper to build a group proposal or rejection. */
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;
}
exports.buildProposal = buildProposal;
/** Sends a packed SDP to the server for rerouting. */
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;
}
exports.buildSdp = buildSdp;
//# sourceMappingURL=builders.js.map