signalcloud
Advanced tools
Comparing version 0.1.0 to 0.2.0
{ | ||
"name": "signalcloud", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "SignalCloud JS client", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -111,13 +111,11 @@ import { Base } from './base'; | ||
if (signal.type == SignalNames.Offer) { | ||
let metaPromise = this.trigger_(ClientEvents.SessionMetaRequest, {endpointId: signal.head.src, endpointMeta: signal.payload.endpointMeta}); | ||
let promise = this.trigger_(SessionEvents.StreamRequest, signal.head.src); | ||
let promise = this.trigger_(ClientEvents.SessionRequest, {endpointId: signal.head.src, endpointMeta: signal.payload.endpointMeta}); | ||
if(!promise || typeof promise.then === 'undefined') {return this.catch_(new Error(`Stream acquire event handler returns something that is not a 'Promise'`))} | ||
if(!metaPromise || typeof promise.then === 'undefined') { | ||
metaPromise = Promise.resolve({endpointMeta: this.options.endpointMeta, trackMeta: {}}) | ||
} | ||
let session; | ||
promise.then((data) => { | ||
if(!data.endpointMeta) data.endpointMeta = Object.assign({}, this.options.endpointMeta||{}) | ||
if(!data.trackMeta) data.trackMeta = {}; | ||
let session; | ||
metaPromise.then((metadata) => { | ||
session = new Session(this.peerConnectionConfig, null, metadata.endpointMeta, metadata.trackMeta); | ||
session = new Session(this.peerConnectionConfig, null, data.endpointMeta, data.trackMeta); | ||
if(this.sessions[signal.head.src]) { return session.finish({cause:SessionFinishReasons.Duplicate}); } // No duplicate sessions | ||
@@ -138,3 +136,10 @@ | ||
}); | ||
return promise; | ||
let stream = data.tracks; | ||
if(Array.isArray(data.tracks)){ | ||
stream = new MediaStream(); | ||
data.tracks.forEach(track => { | ||
stream.addTrack(track); | ||
}); | ||
} | ||
return Promise.resolve(stream); | ||
}).then((stream) => { | ||
@@ -141,0 +146,0 @@ session.answer(signal.head.src, signal.payload.sdp, stream); |
@@ -58,3 +58,2 @@ const TransportEvents = Object.freeze({ | ||
StreamReady : 'stream-ready', | ||
StreamRequest : 'stream-request', | ||
TrackReady : 'track-ready', | ||
@@ -74,3 +73,3 @@ IceConnectionStateChanged : 'ice-connection-state-changed', | ||
const ClientEvents = Object.freeze({ | ||
SessionMetaRequest : 'session-meta-request', | ||
SessionRequest : 'session-request', | ||
SessionCreated : 'session-created', | ||
@@ -77,0 +76,0 @@ ConnectionStateChanged : 'signal-server-connection-state-changed', |
Sorry, the diff of this file is not supported yet
294020
6846