A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/murat-dogan/node-datachannel below:

murat-dogan/node-datachannel: WebRTC For Node.js and Electron (including WebSocket Client & Server). libdatachannel node bindings.

WebRTC For Node.js and Electron ( with WebSocket)

This project is Node.js bindings for libdatachannel library.

npm install node-datachannel

node-datachannel targets N-API version 8 and supports Node.js v18.20 and above. It is tested on Linux, Windows and MacOS. For N-API compatibility please check here.

Linux [x64,armv7,arm64] (1) Windows [x86,x64] Mac [M1,x64] N-API v8 (>= Node.js v18) + + +

(1) For Linux musl + libc

node-datachannel supports Electron.

Please check electron demo

WebRTC polyfills to be used for libraries like simple-peer.

Please check here for more

Please check actual situation here

WebSocket Client & Server

Integrated WebSocket Client & Server is available, which can be used separately or for signaling.

For an example usage, check here

import nodeDataChannel from 'node-datachannel';

// Log Level
nodeDataChannel.initLogger('Debug');

// Integrated WebSocket available and can be used for signaling etc
// const ws = new nodeDataChannel.WebSocket();

let dc1 = null;
let dc2 = null;

let peer1 = new nodeDataChannel.PeerConnection('Peer1', {
  iceServers: ['stun:stun.l.google.com:19302'],
});

peer1.onLocalDescription((sdp, type) => {
  peer2.setRemoteDescription(sdp, type);
});
peer1.onLocalCandidate((candidate, mid) => {
  peer2.addRemoteCandidate(candidate, mid);
});

let peer2 = new nodeDataChannel.PeerConnection('Peer2', {
  iceServers: ['stun:stun.l.google.com:19302'],
});

peer2.onLocalDescription((sdp, type) => {
  peer1.setRemoteDescription(sdp, type);
});
peer2.onLocalCandidate((candidate, mid) => {
  peer1.addRemoteCandidate(candidate, mid);
});
peer2.onDataChannel((dc) => {
  dc2 = dc;
  dc2.onMessage((msg) => {
    console.log('Peer2 Received Msg:', msg);
  });
  dc2.sendMessage('Hello From Peer2');
});

dc1 = peer1.createDataChannel('test');

dc1.onOpen(() => {
  dc1.sendMessage('Hello from Peer1');
});

dc1.onMessage((msg) => {
  console.log('Peer1 Received Msg:', msg);
});

Please check examples folder

npm run test                  # Unit tests
node test/connectivity.js     # Connectivity

Please check here

Please check docs page

Contributions are welcome!

Thanks to Streamr for supporting this project by being a Sponsor!


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4