Link to Github:


Dependencies 1.4.4
AdapterJS: 0.13.4

CDN links (gzipped)

Minified library: //

Debug library: //

Minified with all dependencies://

Debug with all dependencies://

API Documentation

NPM Installation

npm install skylinkjs@0.6.15



  • Added streamId and isAudioFallback parameters to mediaAccessSuccess event.
  • Added streamId and isAudioFallback parameters to mediaAccessStopped event.
  • Added streamId parameter to mediaAccessFallback event. This is only defined when parameter state is FALLBACKED.
  • Added streamId parameter to streamEnded event.
  • not longer has a mandatory default value of 50. It will not exists in if it's not defined.
  • Firefox 48 and above browsers now works with the options.bandwidth settings in joinRoom() method. This however is still not going to work for Firefox 47 and below browsers.

New Features


  • Added localMediaMuted event with payload (mediaStatus). This will trigger locally when Streams muted status changes after muteStream() method is invoked.
  • Added new settings and in getUserMedia() method to allow User to request for video and audio tracks device source based on device source ID provided. This can be reflected in when provided (when audio is available) and when provided (when video is available).
  • Added new setting options.useExactConstraints in getUserMedia() method to allow User to obtain exact, (when provided), (when provided) and (when provided). This might cause errors as SkylinkJS does not prevent the constraints related errors when requesting exact values for getUserMedia() Stream. When value is set to true, this can be found in (when audio is available) and (when video is available).
  • Added a new property peerInfo.agent.temasysPluginVersion that is defined if User is using and connecting with Temasys Plugin and this value is the Temasys Plugin version.


Demo / Documentation

  • Fixes for demo/app not reflecting shareScreen() Stream.
  • Updated docs for broadcasted events are queued when sent too quickly within less than a second interval after the previous broadcasted event for events from sendMessage(), muteStream() (enableAudio(), enableVideo(), disableAudio() and disableVideo()), stopStream(), stopScreen() and setUserData() methods.
  • Updated docs to ensure that methods follow the docs or the step sequence follows the method behavior correctly.
  • Updated docs to reflect the 30 seconds timeout error that will be thrown when options.manualGetUserMedia is enabled in joinRoom() method after no getUserMedia() or shareScreen() Stream is received.
  • Updated docs to reflect and settings.
  • Updated docs to reflect that is not an optional value that might be received if is defined.
  • Fixes for peerInfo.mediaStatus.videoMuted being documented as audio tracks being muted.


  • Fixes for callback not being triggered in sendStream() method.
  • Fixes for callback not being triggered in shareScreen() method.
  • Fixes to ensure that Streams peerInfo.settings.mediaStatus muted status are reflected correctly.
  • Fixes for streamMuted and streamEnded triggering locally when User is not in the Room returning parameter peerId value as null.
  • Fixes for Streams being dropped due to peerInfo.settings not being up to date.
  • Fixes for peerUpdated events to be triggered relevantly in muteStream(), sendStream(), shareScreen(), stopScreen(), getUserMedia() and stopStream() methods.
  • Fixes for sendStream() method that should not be invoked unless User is in the Room.
  • Fixes for enableAudio() and disableAudio() to not mute video tracks when invoked.
  • Fixes for enableVideo() and disableVideo() to not mute audio tracks when invoked.
  • Fixes to ensure peerUpdated is reflecting correct current peerInfo from Web only Peers.
  • Fixes for muteStream() options.audioMuted or options.videoMuted not following the documentation.