Повышение PeerConnection до 0 - PullRequest
0 голосов
/ 14 января 2019

Моя проблема в tokbox, у меня появляется сообщение об ошибке, когда в комнату входит новый издатель. Вот сообщение в консоли, которое показывает текущий издатель:

Повышение PeerConnection до 0

он правильно видит нового издателя, который его не видит


Bonjour

Понимание проблем, связанных с распространением информации, и новаторским изданием Rentre Dans La Room. голосовое сообщение на консольном уровне от издателя:

Повышение PeerConnection до 0

Pourtant il voit исправления le nouveau издатель qui lui ne le voit pas

initSession (session) {
    return new Promise((resolve, reject) => {
      this.sessionId = session.sessionId
      this.token = session.token
      this.session = OT.initSession(process.env.TOKBOX_API_KEY, this.sessionId)

      this.session.connect(this.token, (err) => {
        if (err) {
          return reject(err)
        }

        return resolve()
      })
    })
}

this.$tokbox.initSession(this.$store.state.session)
      .then(() => this.$store.commit('session/inRoom', true))
      .catch((err) => this.$store.commit('log/addError', err.message))

this.$tokbox.session.on({
      streamCreated: (event) => {
        if (typeof this.streamsByUser[event.stream.name] === 'undefined') {
          this.streamsByUser[event.stream.name] = {
            key: event.stream.name + '-' + Date.now(),
            thumbnail: this.$enums.tokbox.CAMERA,
            camera: null,
            screen: null
          }
        }
        this.streamsByUser[event.stream.name][event.stream.videoType] = event.stream
        this.ObjectToArray()
      },
      streamDestroyed: (event) => {
        this.streamsByUser[event.stream.name][event.stream.videoType] = null
        this.ObjectToArray()
      }
    })

ObjectToArray () {
  this.streams = []
  for (const key in this.streamsByUser) {
    if (this.streamsByUser.hasOwnProperty(key)) {
      if (!this.streamsByUser[key].camera && !this.streamsByUser[key].screen) break

      if (this.streamsByUser[key].camera && !this.streamsByUser[key].screen) {
        this.streamsByUser[key].thumbnail = this.$enums.tokbox.SCREEN
      } else if (!this.streamsByUser[key].camera && this.streamsByUser[key].screen) {
        this.streamsByUser[key].thumbnail = this.$enums.tokbox.CAMERA
      } else {
        this.streamsByUser[key].thumbnail = this.streamsByUser[key].camera.creationTime > this.streamsByUser[key].screen.creationTime
          ? this.$enums.tokbox.CAMERA
          : this.$enums.tokbox.SCREEN
      }

      this.streams.push(this.streamsByUser[key])
    }
  }
}

initPublisher (type, opts) {
  this.publisher[type] = OT.initPublisher(type, opts, (err) => {
    if (err) {
      return this.$store.commit('log/addError', err)
    }

    return this.$emit('publisherCompleted')
  })

  this.publisher[type].on('destroyed', () => {
    if (this.interval && type === this.$enums.tokbox.SHARE) {
      clearInterval(this.interval)
      this.interval = null
    }
    this.publisher[type] = null
  })

  if (this.$tokbox.session) {
    if (this.$tokbox.session.isConnected()) {
      this.publishHandler(type)
    }

    this.$tokbox.session.on('sessionConnected', () => this.publishHandler(type))
  }
},
publishHandler (type) {
  this.$tokbox.session.publish(this.publisher[type], (err) => {
    if (err) {
      return this.$store.commit('log/addError', err)
    }

    return this.$emit('publisherConnected', this.publisher)
  })
}
...