WebRTC Data Channel Establishment Protocol. Supported RFC:
const { createChannel } = require('@nodertc/datachannel');
const input = createSctpSourceStream({ id: 1 });
const output = createSctpTargetStream({ id: 1 });
const channel = createChannel({ input, output, label: 'nodertc' });
channel.on('data', data => {
console.log('Channel %s says:', channel.label, data.toString())
});
createChannel(options: Options): Channel
Creates the Data Channel.
Options.input: stream.Readable
Source stream.
Options.output: stream.Writable
Target stream.
Options.negotiated: boolean, default false
The default value of false tells the user agent to announce the channel in-band and instruct the other peer to dispatch a corresponding Channel object. If set to true, it is up to the application to negotiate the channel.
Options.label: string, default ""
A label that can be used to distinguish this Channel object from other one.
Options.protocol: string, default ""
Subprotocol name used for this channel.
Options.priority: number, default 0
Priority of this channel.
Options.ordered: boolean, default false
The type of the delivery. Default false
.
Options.retries: number, optional
The number of retransmissions.
Options.lifetime: number, optional
The maximum lifetime in milliseconds.
class Channel
This class is an abstraction of the Data Channel. A Channel
is also a duplex stream, so it can be both readable and writable, and it is also a EventEmitter.
Channel.label: string, readonly
The name of the Data Channel.
Channel.priority: number, readonly
The priority of the Data Channel.
Channel.protocol: string, readonly
The name of a protocol registered in the 'WebSocket Subprotocol Name Registry'.
Channel.type: number, readonly
Get the channel type.
Channel.ordered: boolean, readonly
Get the type of the delivery.
Channel.negotiated: boolean, readonly
Returns true if the Data Channel was negotiated by the application, or false otherwise.
Channel.reliability: number, readonly
For reliable Data Channels this field MUST be set to 0 on the sending side and MUST be ignored on the receiving side. If a partial reliable Data Channel with limited number of retransmissions is used, this field specifies the number of retransmissions. If a partial reliable Data Channel with limited lifetime is used, this field specifies the maximum lifetime in milliseconds.
Channel.close()
Closes the channel. The input
and output
channels keeps untouched.
MIT, 2018 © Dmitriy Tsvettsikh