@@ -9,6 +9,15 @@ var inherits = require('inherits')
99var Peer = require ( 'simple-peer' )
1010var Socket = require ( 'simple-websocket' )
1111
12+ var wrtc
13+ try {
14+ wrtc = require ( 'wrtc' ) // webrtc in node - will be empty object in browser
15+ } catch ( err ) {
16+ wrtc = null // optional dependency failed to install
17+ }
18+
19+ var WEBRTC_SUPPORT = typeof window !== 'undefined' || ! ! wrtc
20+
1221var common = require ( './common' )
1322
1423// It turns out that you can't open multiple websockets to the same server within one
@@ -38,6 +47,8 @@ function WebSocketTracker (client, announceUrl, opts) {
3847 self . _socket . on ( 'data' , self . _onSocketData . bind ( self ) )
3948}
4049
50+ WebSocketTracker . supported = WEBRTC_SUPPORT
51+
4152WebSocketTracker . prototype . announce = function ( opts ) {
4253 var self = this
4354 if ( ! self . _socket . connected ) {
@@ -122,7 +133,7 @@ WebSocketTracker.prototype._onSocketData = function (data) {
122133
123134 var peer
124135 if ( data . offer ) {
125- peer = new Peer ( { trickle : false , config : self . _opts . rtcConfig } )
136+ peer = new Peer ( { trickle : false , config : self . _opts . rtcConfig , wrtc : wrtc } )
126137 peer . id = common . binaryToHex ( data . peer_id )
127138 peer . once ( 'signal' , function ( answer ) {
128139 var params = {
@@ -172,7 +183,8 @@ WebSocketTracker.prototype._generateOffers = function (numWant, cb) {
172183 var peer = self . _peers [ offerId ] = new Peer ( {
173184 initiator : true ,
174185 trickle : false ,
175- config : self . _opts . rtcConfig
186+ config : self . _opts . rtcConfig ,
187+ wrtc : wrtc
176188 } )
177189 peer . once ( 'signal' , function ( offer ) {
178190 offers . push ( {
0 commit comments