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

@viewar/call

v2.0.0

Published

ViewAR Call

Downloads

42

Readme

ViewAR Call

This is ViewAR's call service. To use this package you need to have the ViewAR API installed (https://www.npmjs.com/package/viewar-api).

The purpose of this service is to set up a connection between several clients and a server and to handle the communication (call, hang up,...) between them. The events are based on rxjs observables. If to users agree on a call, the called user's camera picture is shared with the caller.

For more information visit our developer portal at developer.viewar.com or our website at www.viewar.com.

Usage

Initialize the call service:

import viewarApi from 'viewar-api';
import { createCallClient } from '@viewar/call';

await viewarApi.init({appId: 'com.viewar.sdk'});
const callClient = createCallClient(viewarApi, {
  host: 'ws://127.0.0.1:8080'   // Sample server URL.
});

To connect to the given server:

await callClient.connect();

The call service is build around a server which has several sessions (also called rooms). The clients can call each other only if they are within the same session. To join a session use the following code (a new session will be created if not existing):

await callClient.join({
  sessionId: 'TestSession',
  password: '1234'  // Optional if the server requires a password.
  userData: {}      // App specific user data.
})

A user can call another user within the same session.

await callClient.call({id: 'Client1'});
callClient.acceptedCall.subscribe(function() {
  console.log('User accepted call.')
});

// Wait for user to accept the call
await new Promise(function(resolve) {
  callClient.acceptedCall.subscribe(resolve);
}

A called user needs to accept an incoming call:

callClient.incomingCall.subscribe(function() {
  callClient.answerCall({
    syncScene: false,   // Set to true to sync viewarApi.sceneManager.scene's state between the clients.
    data: {},           // App specific data.
  });
});

Get a list of all available clients:

callClient.clients.filter(client => client.data.available)    // The available flag will be automatically set.

You can also subscribe to changes of clients available:

callClient.clientsUpdate.subscribe(function() {
  // Do something.
});

To leave a session:

await callClient.leave();