npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

multirtc

v7.0.2

Published

1) It is a skype-like demo using WebRTC for realtime connections! 2) It allows you enable/disable webcams; and join with or without webcams! 3) It allows you share screen using existing peer connections! 4) It allows you share files with preview and downl

Downloads

51

Readme

MultiRTC / A Demo application for RTCMultiConnection.js!

  1. Source Code: https://github.com/muaz-khan/WebRTC-Experiment/tree/master/MultiRTC
  2. Similar Demo: https://www.webrtc-experiment.com/RTCMultiConnection/MultiRTC/
  3. RTCMultiConnection.js: http://www.RTCMultiConnection.org/docs/
// Dependencies: 
// 1) socket (npm install websocket)
// 2) node-static (npm install node-static)

npm install multirtc

// to run it!
cd node_modules/multirtc/ && node signaler.js

Now, both WebSocket and HTTPs servers are running at port 12034:

https://localhost:12034/

=

Note:

This MultiRTC Demo is using WebSockets over Nodejs for signaling and presence detection!

You can easily use any signaling implementation; whether it is Socket.io or XHR-Long polling or SIP/XMPP or WebSync/SignalR etc. Read more here!

Follow these steps to use other signaling servers:

  1. Cut code from "public" directory and paste in a unique directory.
  2. Now, open ui.peer-connection.js and go to line 14. You can override your own openSignalingChannel.
  3. Now, open ui.main.js and go to line 94. You can easily change websocket to socket.io or any other implementation.

and that's it!

=

What is MultiRTC?

  1. It is a skype-like demo using WebRTC for realtime connections!
  2. It allows you enable/disable webcams; and join with or without webcams!
  3. It allows you share screen using existing peer connections!
  4. It allows you share files with preview and download links!
  5. It allows you auto translate incoming messages in your own language!
  6. It gives you full control over bandwidth and screen resolutions!
  7. It allows you adjust file sharing speed yourself by setting chunk-size and chunk-intervals!
  8. It allows you test all WebRTC features by enabling/disabling some check-boxes!

Demo here: https://www.webrtc-experiment.com/RTCMultiConnection/MultiRTC/

=

How it works?

  1. It opens WebRTC data connection same like Skype!
  2. Multiple users can join same room; text chat and share multiple files concurrently!
  3. Choose your own URL! Users from one room can't access data or join users from other rooms.
  4. Anyone can add any media stream any-time! Whether it is screen; or audio/video.
  5. An advance settings section allows you customize many RTCMultiConnection features in one place!

It is an All-in-One solution for RTCMultiConnection.js!

=

Presence Detection!

Presence detection is handled by websocket-over-nodejs! Open ui.main.js file and go to line 79.

// use "channel" as sessionid or use custom sessionid!
var roomid = connection.channel;

var SIGNALING_SERVER = 'wss://wsnodejs.nodejitsu.com:443';
var websocket = new WebSocket(SIGNALING_SERVER);

websocket.onmessage = function (event) {
    var data = JSON.parse(event.data);
  
    if (data.isChannelPresent == false) {
        connection.open();
    } else {
        connection.join(roomid);
    }
};

websocket.onopen = function () {
    websocket.send(JSON.stringify({
        checkPresence: true,
        channel: roomid
    }));
};

=

websocket-over-nodejs for signaling!

Open ui.peer-connection.js and go to line 15.

// wss://wsnodejs.nodejitsu.com:443
// ws://wsnodejs.nodejitsu.com:80
// wss://www.webrtc-experiment.com:8563

var SIGNALING_SERVER = 'wss://wsnodejs.nodejitsu.com:443';
connection.openSignalingChannel = function(config) {
    config.channel = config.channel || this.channel;
    var websocket = new WebSocket(SIGNALING_SERVER);
    websocket.channel = config.channel;
    websocket.onopen = function() {
        websocket.push(JSON.stringify({
            open: true,
            channel: config.channel
        }));
        if (config.callback)
            config.callback(websocket);
    };
    websocket.onmessage = function(event) {
        config.onmessage(JSON.parse(event.data));
    };
    websocket.push = websocket.send;
    websocket.send = function(data) {
        websocket.push(JSON.stringify({
            data: data,
            channel: config.channel
        }));
    };
}

=

License

RTCMultiConnection.js WebRTC Library is released under MIT licence . Copyright (c) Muaz Khan.