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

peerjs-av-chat

v0.1.1

Published

A library to setup a single peerjs-based audio-video-chat connection between two peers.

Downloads

3

Readme

AV-chat

Audio-video chat library and example over WebRTC using peerjs. The library allows you to easily setup a single peer-to-peer call using audio, video and chat.

Pre-requisites

As the open peerjs server is quite busy, and sometimes down, it might be better to run your own peer server. However, since we need access to the camera and microphone, which are only accessible under HTTPS, you need to run it using SSL. For Parcel, this is as simple as adding a --ssl command line parameter. For the peerjs server, however, you need to generate an SSL keypair as described here. Long story short, you need to run the following command to generate a localhost keypair:

openssl req -x509 -out localhost.crt -keyout localhost.key \
  -newkey rsa:2048 -nodes -sha256 \
  -subj '/CN=localhost' -extensions EXT -config <( \
   printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

Next, double-click the localhost.crt to install it in your local key store. Manually select "Trusted Root Certification Authorities" as the storage location. Next, restart your browser (all open instances need to be closed first in order to reload the CAs). Copy the generated localhost.key and localhost.crt to the current working directory, and start the peerjs server using npm run server. Note that this certificate is valid for 1 month only, so get used to this.

For an alternative approach, consider using the free version of ngrok.

Using ngrok

Ngrok allows you to create (for free) a single tunnel for your server. Next, you can run the client and access it over your local network using the IP address of the development server's machine. You have to enable parcel to serve over https as described above.

Alternatives

Use a service as serveo to tunnel local requests via the Internet. In that case, run the server and expose it externally:

npm run server
ssh -R 80:localhost:9000 serveo.net # The URL returned should be the host option in the PeerJS initialization call

For example:

{
  "host": "volpes.serveo.net",
  "port": 443,
  "path": "/myapp",
  "secure": true,
  "debug": 2
}

Next, do the same for the client app

npm start
ssh -R 80:localhost:1234 serveo.net # The URL returned can be used to access the client

Development

First, install all dependencies:

npm i # only once to install all dependencies: or use `pnpm i` as a better alternative

Next, start the peerjs server and parcel by running:

npm start