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

kitrtcjs

v0.0.4

Published

KitRTC JS Client SDK - 0.0.4

Downloads

2

Readme

JavaScript/TypeScript client SDK for KitRtc

KitRtc is a powerful library designed to simplify the integration of WebRTC into applications developed with Angular. We make it easy to create real-time communication experiences, allowing developers to easily incorporate audio and video capabilities into their web applications.

  • Main Features: Easy Integration: Easily implement real-time communication without the complexity of configuring WebRTC from scratch.

  • Angular Components: Take advantage of Angular's customizable components to build modern, interactive user interfaces.

  • Video Conferencing Support: Facilitates the creation of video conferencing rooms with advanced control and management functions.

  • Advanced Customization: Adapt the user interface and functionalities according to the specific needs of your application.

  • Cross-platform Compatibility: Ensures a fluid experience on different browsers and devices.

  • Security and Privacy: Implement security measures to protect communications and guarantee user privacy.

  • Comprehensive Documentation: We provide detailed documentation and usage examples to speed up the development process.

Our vision and mission

KitRTC is in constant evolution and improvements so there may be uncontrolled errors and/or unexpected behaviors, with your help we will be able to improve it even more.

There are still many functions and/or features that we are working on little by little, below we present some aspects that we currently have on our development list:

  • Signaling change to SSR (Great improvement).
  • Better room control (Password, Token, Tracks, Participants, Etc).
  • Tokenized and protected API to interact with rooms.
  • Room recording.
  • Dynamic Video/Audio Quality
  • Integration with Cloud Storage Platforms
  • Translation and Subtitles in Real Time (Great improvement)
  • Redis implementation.
  • Implementation of Scalability for rooms with more participants (Hand in hand with SSR)

Thank you for all the support and for using our library, don't forget to join our SLACK.

Docs

Docs and guides at https://docs.nillapp.com/kitrtc

SDK reference

Slack

Github Official / Support

Installation

NPM

npm install kitrtcjs --save

Importing

Import service and components from the package in app.module.ts:

//Import service and module
import { KitRtc, KitRtcModule } from 'kitrtcjs';

@NgModule({
  ...
  imports: [
    ...
    KitRtcModule
  ],
  providers: [
    ...
    KitRtc
  ],
  ...
})

Usage

Examples below are in TypeScript, if using JS/CommonJS imports replace import with:

import { KitRtc } from 'kitrtcjs';

...
//For test purposes in development environment
server: string = "https://localhost:3000";

constructor(
  private kitRtc: KitRtc
){

  //Connect
  this.connect();
  
}
...

async connect(): Promise<void>{
  const connect = await this.kitRtc.connect(this.server);
  if (connect) {
    console.log("Connected to server");
    const joinRoom = await this.kitRtc.room.join("roomName");
    if (joinRoom) {
      console.log("Joined to room");
    }
  }
}
...

Publish video & audio in a room


//Connect to server
await this.kitRtc.connect(this.server);

//Join to room
await this.kitRtc.room.join("roomName");

//Publish video & audio
await this.kitRtc.localParticipant.localTracks.enableCameraAndMic();



//Set events 
this.kitRtc.onRemoteMedia.subscribe(([participant: Participant, track: Track]) => {
  console.log('onRemoteMedia', participant, track);
  //Source append automatically using component: <kitrtc-participants />
});

this.kitRtc.onRemoveRemoteMedia.subscribe(([participant: Participant, track: Track]) => {
  console.log('onRemoveRemoteMedia', participant, track);
  //Source remove automatically using component: <kitrtc-participants />
});

this.kitRtc.onParticipantConnected.subscribe((participant: Participant) => {
  console.log('onParticipantConnected', participant);
});

this.kitRtc.onParticipantDisconnected.subscribe((participant: Participant) => {
  console.log('onParticipantDisconnected', participant);
});

this.kitRtc.onRemoveLocalMedia.subscribe(([participant: Participant, track: Track]) => {
  console.log('onRemoveLocalMedia', participant, track);
});

Automatic participant management

As part of our principles and initial project idea, you have some components available to facilitate user control, error control and quick use.

<!-- Self-management of the room participants. -->
<kitrtc-participants />

<!-- Self-management local participant. -->
<kitrtc-local-participant />

<!-- Self-management of local media -->
<kitrtc-media-controls />

Creating a track after joining a room

In some cases, it may be useful to create a track before creating a room.

const tracks = await this.kitRtc.localParticipant.localTracks.createLocalTracks({
  audio: true,
  video: true,
});

Publish tracks manually

You can publish a track whenever you need it

await this.kitRtc.localParticipant.localTracks.publish();

// or unpublish
await this.kitRtc.localParticipant.localTracks.unpublish(true);

Audio auto-play policy

By default, browsers do not allow sound to be played automatically without user interaction, KitRtc automatically controls these errors in a clean and non-invasive way.

<!-- If you use this component KitRtc takes care of everything :). -->
<kitrtc-participants />

Configuring logging

Debugging is very simple with KitRtc, just adding the following line of code will activate all the notices, warnings and errors logs.

this.kitRtc.isDebug = true;

You can change the behavior of the logs at any time.

Browser Support

| Browser | Desktop OS | Mobile OS | | --------------- | --------------------- | --------- | | Firefox | Windows, macOS, Linux | Android | | Chrome | Windows, macOS, Linux | Android | | Safari | macOS | iOS | | Edge (Chromium) | Windows, macOS | |

We continue debugging and adding more functions to further enrich KitRtc, we hope to make it one of the best free webrtc libraries, help us by supporting us and sharing our work.

  • Also with your support we offer support and we will increase/improve the operation

Plan-based usage licenses

We want to clarify that KitRtc is completely free to use, we want to offer the best tool for real-time communication with WebRTC, however to achieve this we need to invest a lot of time in debugging and improving KitRtc for that we seek the support of the community by offering some plans to reward directly to those who support us.

Those who do not support us will still receive updates and support.

| Plan | Free | Basic | Premium | |---------------|-----------------------|------------------------|------------------------| | Participants | Limited (2 per room) | Limited (4 Per room) | Unlimited | | | Short sessions | Without time limit. | Unlimited | | Features | Unlimited | Unlimited | Unlimited | | Encrypted communication | Yes | Yes | Yes | | Recording | No | To consult price. | To consult price. | | Support | GitHub (Issues) | Email | Support 24/7 | | Personalization| Watermark | Basic interface | Total control | | Components | Yes | Yes | Yes | | IceServers | Shared | Shared | Shared | | Signaling | Shared | Own instance | Own instance| | Price | Free | 9.99€/m | 29.99€/m |

Prices not included VAT.

By using KitRtc you accept our policies, terms and conditions as well as the use in accordance with the aforementioned plans, we will not limit you directly, we trust your honesty and your support!