UNPKG

@viewar/call

Version:

ViewAR Call

77 lines (60 loc) 2.31 kB
# 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: ```js 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: ```js 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): ```js 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. ```js 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: ```js 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: ```js callClient.clients.filter(client => client.data.available) // The available flag will be automatically set. ``` You can also subscribe to changes of clients available: ```js callClient.clientsUpdate.subscribe(function() { // Do something. }); ``` To leave a session: ```js await callClient.leave(); ```