Example #1
0
  const connect = () => {
    if (sourceId) {
      const conn = peer.connect(sourceId, { reliable: true });

      conn.on('open', () => {
        console.log('RTC data connection established - acting as receiver');
        resolve(conn);
      });

      conn.on('error', (error) => {
        reject(error);
      });
    } else {
      peer.on('connection', (conn) => {
        conn.on('open', () => {
          console.log('RTC data connection established - acting as source');
          resolve(conn);
        });
      });

      peer.on('error', (error) => {
        reject(error);
      });
    }
  };
Example #2
0
 connect( id ) {
   const conn = this.peer.connect(id);
   return new Promise(( resolve, reject ) => {
     conn.on('open', () => {
       this._connect = conn;
       resolve(conn);
     });
     conn.on('close', this.onDisconnect);
   });
 }
Example #3
0
  componentDidMount() {
    const props = this.props

    this.setState({
      review_id: props.match.params.id
    })

    const peer = new Peer({
      host: '/',
      path: '/peerjs',
      port: detectPort(window.location),
      // Set highest debug level (log everything!).
      debug: 3,
    })
    peer.on('error', err => {
      console.error(err.type)
    })

    const dataConnection = peer.connect(props.reviewer.reviewId)
    dataConnection.on('data', message => {
      switch(message.type) {
      case 'REVIEW_INFO':
        dataConnection.send({
          type: 'REVIEWER',
          reviewer: {
            id: props.reviewer.id,
            name: props.reviewer.name
          }
        })
        props.onConnectReview(message.review)
        break
      case 'FILE_RESPONSE':
        props.onReceiveFile(message.file)
        break
      case 'REVIEW/UPDATE_COMMENTS':
        props.onUpdateComments(message.comments)
        break
      }
    })
    dataConnection.on('error', err => {
      console.error(err)
    })
    this.setState({peer, dataConnection})
  }
Example #4
0
function setupController(player_name, hub_id) {
  $('.controller').removeClass('hidden')

  $(window).resize(function (event) {
    set_viewport_height()
  })

  $('#fullscreen-toggle').click(function() {
    toggleFullScreen()
  })


  var satellite = new Peer({
    host: Settings.peerjs_host,
    port: Settings.peerjs_port,
    secure: Settings.using_https,
    debug: Settings.peerjs_debug_level
  })

  hub_id = hub_id || 'test';

  var dataConnection = satellite.connect(hub_id, { metadata: { player_name: player_name } })

  $('#trackball-one').trackball({
    onstart: function (data) {
      data.type = 'trackball';
      dataConnection.send(data);
    },
    onmove: function (data) {
      data.type = 'trackball';
      dataConnection.send(data);
    },
    onend: function (data) {
      dataConnection.send({
        type: 'trackball',
        x: 0, y: 0
      });
    }
  });

  $('#btn-a').on('touchstart mousedown', function (event) {
    dataConnection.send({
      type: 'button_pressed',
      name: 'a'
    });
    $(this).addClass('pressed');
    absorb_event(event);
  });

  $('#btn-a').on('touchend mouseup', function (event) {
    dataConnection.send({
      type: 'button_released',
      name: 'a'
    });
    $(this).removeClass('pressed');
    absorb_event(event);
  });

  dataConnection.on('data', function (data) {
    if (data.type == 'feedback') {
      navigator.vibrate([500]);
    }
  });
}