В Opentok-реагировать-нативный, как я могу получить информацию о различных событиях, таких как клиент подключен, отключен и так далее - PullRequest
0 голосов
/ 31 января 2019

Я много искал, но не мог найти какой-либо способ найти различные обратные вызовы в библиотеке opentok-Reaction-native , например, когда пользователь подключился, отключился, переподключился и так далее.Я даже нашел документацию для OTSession , где они описали различные события, но они не работают.Все эти события вызываются все вместе.

Видеовызов работает нормально, но я хочу выполнить различные действия в зависимости от этих событий

renderVideoView(data) {
console.log("rendering view view,, ", data);

return (
  <View
    style={{
      flex: 1,
      flexDirection: "row",
      backgroundColor: R.Colors.COLOR_VIDEO_BACKGROUND
    }}
  >
    <OTSession
      ref={ref => {
        this.OTSession = ref;
      }}
      connectionCreated={ console.log("connection created")}
      connectionDestroyed={ console.log("connection destroyed")}
      sessionConnected={ console.log("Client connect to a session")}
      sessionDisconnected={
        console.log("Client disConnect to a session")
      }
      sessionReconnected={() => console.log("session reconnected")}
      apiKey={this.apiKey}
      sessionId={data.sessionId}
      token={data.token}
    >
      <OTSubscriber style={{ width: "100%", height: "100%" }} />

      <View style={styles.publisherStyle}>
        <OTPublisher
          properties={{
            publishAudio: this.state.publishAudio,
            cameraPosition: this.state.cameraPosition,
            publishVideo: this.state.publishVideo
          }}
          style={{ width: 90, height: 107, padding: 2 }}
        />
      </View>

      {this.renderViewAtCenter()}
      {this.renderBottomView()}
      {this.renderTopView()}
    </OTSession>
  </View>
);}

1 Ответ

0 голосов
/ 04 февраля 2019

TokBox Developer Evangelist здесь.

Чтобы настроить прослушиватели событий с помощью компонента OTSession, используйте eventHandlers prop следующим образом:

import React, { Component } from 'react';
import { View } from 'react-native';
import { OTSession, OTPublisher, OTSubscriber } from 'opentok-react-native';

export default class App extends Component {
  constructor(props) {
    super(props);
    this.apiKey = '';
    this.sessionId = '';
    this.token = '';
    this.sessionEventHandlers = {
      connectionCreated: event =>  { 
          console.log("connection created", event);
      },
      connectionDestroyed: event =>  { 
          console.log("connection destroyed", event);
      },
      sessionConnected: event => { 
          console.log("Client connect to a session")
      },
      sessionDisconnected: event => {
        console.log("Client disConnect to a session")
      },
      sessionReconnected: event => {
        console.log("session reconnected")
      },
    };
  }

  render() {
    return (
      <View style={{ flex: 1, flexDirection: 'row' }}>
        <OTSession apiKey={this.apiKey} sessionId={this.sessionId} token={this.token} eventHandlers={this.sessionEventHandlers}>
          <OTPublisher style={{ width: 100, height: 100 }} />
          <OTSubscriber style={{ width: 100, height: 100 }} />
        </OTSession>
      </View>
    );
  }
}

Я также ушелвперед и подал выпуск в репо для улучшения документации для компонента OTSession.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...