Accessoires | Options de session | Méthodes | Evénements

Les OTSession Ce composant gère la connexion à une session OpenTok. Il transmet l'identifiant de session au sessionId propriété à ses composants enfants. Pour déconnecter la session, démontez le OTSession composant. Pour publier et vous abonner, vous devez imbriquer OTPublisher et OTSubscriber à l'intérieur OTSession:

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      isConnected: false,
    };

    this.otSessionRef = React.createRef();

    this.sessionEventHandlers = {
      streamCreated: event => {
        console.log('Stream created!', event);
      },
      streamDestroyed: event => {
        console.log('Stream destroyed!', event);
      },
      sessionConnected: event => {
        this.setState({
          isConnected: true,
        })
      }
    };
  }

  sendSignal = () => {
    if (this.state.isConnected) {
      this.otSessionRef.current.signal({
        data: 'hello',
        to: '6d26ca65-24c9-45df-b827-424e9952dece', // optional - connection ID of client to recieve the signal
        type: 'greeting', // optional
      })
    }
  }

  render() {
    return (
      <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" eventHandlers={this.sesssionEventHandlers} ref={this.otSessionRef}>
        <OTPublisher style={{ width: 100, height: 100 }}/>
        <OTSubscriber style={{ width: 100, height: 100 }} />
      </OTSession>
    );
  }
}

Vous pouvez définir les options de session à l'aide de la commande options prop :

class App extends Component {
constructor(props) {
  super(props);
  this.sessionOptions = {
    connectionEventsSuppressed: true, // default is false
    androidZOrder: '', // Android only - valid options are 'mediaOverlay' or 'onTop'
    androidOnTop: '',  // Android only - valid options are 'publisher' or 'subscriber'
    useTextureViews: true,  // Android only - default is false
    ipWhitelist: false, // (/developer/sdks/js/reference/OT.html#initSession - ipWhitelist
    enableStereoOutput: true // Enable stereo output, default is false
    enableSinglePeerConnection: true // Enable single peer connection, default is false
    iceConfig:{
      transportPolicy: 'all', // Valid options are 'all' or 'relay'. Default is 'all'
      includeServers: 'all', // Valid options are 'all' or 'custom'. Default is 'all'
      customServers: [
        {
        urls: [
          'turn:123.124.125.126:3478?transport=udp',
          'turn:123.124.125.126:3478?transport=tcp'
        ],
        username: 'webrtc',
        credential: 'foO0Bar1'
        },
      ],
      filterOutLanCandidates: false, // The default is false
    },
  };
}

render() {
  return (
    <OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" options={this.sessionOptions}>
      <OTPublisher style={{ width: 100, height: 100 }}/>
      <OTSubscriber style={{ width: 100, height: 100 }} />
    </OTSession>
  );
}
}

Veuillez noter que toutes les options de session sont facultatives. Voir Options de session.

Accessoires

L'objet OTSession dispose des propriétés suivantes :

apiKey (Chaîne de caractères, obligatoire) -- La clé API du projet OpenTok.

sessionId (Chaîne de caractères, obligatoire) -- L'identifiant de session OpenTok.

jeton (Chaîne de caractères, obligatoire) -- Le jeton OpenTok du client.

options (Objet, facultatif) -- Permet de définir les options de session. Voir Options de session.

signal (Objet, facultatif) -- Permet d'envoyer un signal à la session

gestionnaires d'événements (Objet, facultatif) -- Objet contenant des paires clé-valeur composées de noms d'événements et de fonctions de rappel pour les gestionnaires d'événements. Voir Evénements.

secret de cryptage (Chaîne de caractères, facultatif) -- Clé de chiffrement à utiliser pour tous les flux que le client publie et auxquels il s'abonne (dans une session utilisant le chiffrement de bout en bout). Voir la section « Chiffrement de bout en bout » guide du développeur.

Options de session

Les options L'objet `prop` du composant OTSession présente les propriétés suivantes (chacune d'entre elles étant facultative) :

androidZOrder (Chaîne) -- À définir sur « mediaOverlay » ou « onTop ». Android uniquement.

androidOnTop (Chaîne) -- À définir sur « publisher » | « subscriber ». Android uniquement.

événements de connexion supprimés (Booléen) -- Indique s'il faut empêcher connectionCreated et connectionDestroyed empêcher l'envoi de l'événement. Vous pouvez choisir de désactiver ces événements dans les sessions de grande envergure, telles que celles utilisées pour diffusion de vidéos interactives en direct. La valeur par défaut est « false ».

activer la sortie stéréo (Booléen) -- Indique s'il faut activer la sortie stéréo. La valeur par défaut est « false ».

activer la connexion entre deux pairs (Booléen) -- Définir sur true pour que le client utilise une seule connexion entre pairs. La valeur par défaut est false. Notez que cette fonctionnalité n'est disponible que dans les sessions routées. Pour plus d'informations, consultez cette documentation.

iceConfig (Objet) -- Paramètres d'utilisation du fonction TURN configurable. Cette fonctionnalité est disponible sous forme de fonction complémentaire.

Cet objet possède les propriétés suivantes :

  • includeServers (Chaîne de caractères) Indique si le client doit utiliser exclusivement vos serveurs TURN (« custom ») ou les utiliser en complément des serveurs TURN d'OpenTok (« all »).

  • transportPolicy « all » | « relay » ;

  • customServers (Tableau) -- Tableau d'objets définissant les serveurs TURN personnalisés à utiliser. Chaque objet possède les propriétés suivantes :

    • urls (Tableau de chaînes de caractères) -- Les URL du serveur TURN.
    • username (Chaîne de caractères, facultatif) -- Le nom d'utilisateur.
    • credential: (chaîne de caractères, facultatif) -- Les informations d'identification pour le serveur TURN.
  • filterOutLanCandidates -- Détermine s'il faut exclure les candidats ICE hôtes appartenant au même réseau local, ce qui empêche l'application d'utiliser le réseau local pour établir une connexion multimédia. Ce paramètre s'applique uniquement à iOS (il est ignoré sur Android). Le filtrage des candidats locaux empêche l'application de demander l'autorisation à l'utilisateur lorsqu'elle tente de s'abonner à des clients situés sur le même réseau local dans le cadre d'une session relayée.

Il est à noter que, contrairement aux autres iceConfig ce paramètre ne permet pas de pas exigent que les serveur TURN configurable fonction complémentaire.

Pour plus d'informations, voir cette documentation.

Liste blanche d'adresses IP (Booléen) -- Indique s'il faut utiliser le liste des adresses IP autorisées fonctionnalité. Elle est disponible sous forme de fonction complémentaire La valeur par défaut est « false ».

isCamera2Capable (Booléen) -- Obsolète et ignoré. Android uniquement.

proxyUrl (Chaîne de caractères, facultatif) -- L'URL du proxy à utiliser pour la session. Il s'agit d'un module complémentaire fonctionnalité. Voir la Proxy IP OpenTok guide du développeur.

sessionMigration (Booléen) -- Active la fonctionnalité de migration de session, permettant au client de rester connecté pendant la rotation des serveurs. La valeur par défaut est « false » (la migration de session n'est pas activée). Pour plus d'informations, voir Rotation des serveurs et migration des sessions.

utiliser les vues de texture (Booléen) -- Définir sur true pour utiliser les vues de texture. La valeur par défaut est false. Android uniquement.

Méthodes

disableForceMute() Désactive l'état de sourdine actif de la session. Une fois cette méthode appelée, les nouveaux flux publiés sur la session ne seront plus en sourdine.

Une fois que vous avez appelé la méthode `Session.forceMuteAll()` (ou qu'un modérateur d'un autre client a lancé une commande pour couper le son de tous les flux), tous les flux publiés après cette commande de modération sont diffusés avec le son coupé. Appelez la méthode OTSession.disableForceMute() méthode permettant de désactiver la mise en sourdine d'une session (afin que les nouveaux flux publiés ne soient pas automatiquement mis en sourdine).

Vérifier le capabilities.canForceMute de l'objet retourné par OTSession.getCapbabilities() pour vérifier si vous pouvez appeler cette fonction sans problème. Cette fonctionnalité est réservée aux clients connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué (voir la Documentation sur la création de jetons).

getSessionInfo() Renvoie un objet comportant les propriétés suivantes :

  • sessionId (Chaîne) -- L'identifiant de session.

  • connection (Objet) -- Objet définissant la connexion du client local à la session. Il comprend les propriétés suivantes :

    • connectionId (Chaîne) -- L'identifiant de connexion du client local.

    • creationTime(Chaîne) -- Heure à laquelle la connexion a été établie.

    • data (Chaîne) -- Le données de connexion pour le client local.

getCapabilities() Indique si le client peut publier et s'abonner à des flux au cours de la session, en fonction des rôles attribués au jeton client utilisée pour se connecter à la session. La méthode renvoie une Promise qui se résout en un objet comportant les propriétés suivantes :

  • canForceMute (Booléen) -- Indique si le client peut forcer la mise en sourdine des flux dans la session ou désactiver l'état de mise en sourdine actif dans une session (true) ou non (false).

  • canPublish (Booléen) -- Indique si le client peut publier des flux vers la session (true) ou non (false).

  • canSubscribe (Booléen) -- Indique si le client peut s'abonner à des flux au cours de la session (true) ou non (false).

La promesse est rejetée si vous n'êtes pas connecté à la session et que le connectionCreated L'événement a été déclenché.

Pour plus d'informations, voir le Documentation sur les jetons OpenTok.

reportIssue() Vous permet de signaler qu'un problème est survenu dans votre application (à consulter avec Inspecteur ou pour en discuter avec l'équipe d'assistance de l'API Vonage .) La méthode renvoie une Promise qui se résout en une chaîne de caractères correspondant à l'identifiant du ticket.

forceDisconnect() Force un client connecté à la session à se déconnecter de celle-ci. Passez l'identifiant de connexion du client connecté en paramètre.

Vérifier le capabilities.canForceDisconnect de l'objet retourné par OTSession.getCapbabilities() pour vérifier si vous pouvez appeler cette fonction sans problème. Cette fonctionnalité est réservée aux clients connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué (voir la Documentation sur la création de jetons).

forceMuteAll() Oblige tous les diffuseurs de la session (à l'exception de ceux qui diffusent des flux exclus) à couper le son.

Cette méthode comporte un paramètre facultatif : -- excludedStreams, et un tableau d'identifiants de flux. Un flux publié par le modérateur qui appelle la méthode `forceMuteAll()` est mis en sourdine en même temps que les autres flux de la session, à moins que vous n'ajoutiez le ou les flux du modérateur à la excludedStreams tableau. Si vous omettez le excludedStreams paramètre, tous les flux de la session (y compris ceux du modérateur) cesseront de diffuser du son. De plus, tous les flux diffusés après l'appel de la fonction forceMuteAll() sont publiées avec le son coupé. Vous pouvez supprimer l'état de sourdine d'une session en appelant la méthode OTSession.disableForceMute() méthode.

Après avoir appelé le Session.disableForceMute() Grâce à cette méthode, le son des nouveaux flux publiés vers la session ne sera plus coupé. L'appel de cette méthode déclenche la diffusion d'événements « muteForced » par les objets Publisher des clients qui publient les flux. De plus, l'objet Session de chaque client connecté à la session diffuse l'événement « muteForced » (la propriété « active » de l'objet événement étant définie sur « true »).

Vérifier le capabilities.canForceMute de l'objet retourné par OTSession.getCapbabilities() pour vérifier si vous pouvez appeler cette fonction sans problème. Cette fonctionnalité est réservée aux clients connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué (voir la Documentation sur la création de jetons).

forceMuteStream() Force l'éditeur d'un flux spécifié à couper le son. Indiquez l'identifiant du flux en tant que paramètre.

Vérifier le capabilities.canForceMute de l'objet retourné par OTSession.getCapbabilities() pour vérifier si vous pouvez appeler cette fonction sans problème. Cette fonctionnalité est réservée aux clients connectés à l'aide d'un jeton auquel le rôle de modérateur a été attribué (voir la Documentation sur la création de jetons).

signal() Envoie un signal aux clients connectés à la session. La méthode comporte un paramètre, un objet comprenant les propriétés suivantes, chacune d'entre elles étant facultative (même si l'on souhaite généralement définir la data ) :

  • connectionId (Chaîne) -- Identifiant de connexion du client auquel envoyer le signal. Si ce paramètre est omis, le signal est envoyé à tous les clients connectés à la session.

  • type (chaîne de caractères) -- Le type de signal.

  • data (chaîne de caractères) -- Les données du signal.

Pour plus d'informations, voir le Guide du développeur sur la signalisation OpenTok

Evénements

archiveCréée (Objet) — Envoyé au début de l'enregistrement d'une session. Si vous vous connectez à une session dont l'enregistrement est déjà en cours, ce message est envoyé au moment de votre connexion. Un ArchiveÉvénement L'objet est transmis au gestionnaire d'événements.

archiveArrêté (Chaîne) — Envoyé lorsqu'un enregistrement d'archive d'une session s'arrête. Un ArchiveÉvénement L'objet est transmis au gestionnaire d'événements.

connexionCréée (Objet) — Envoyé lorsqu'un autre client se connecte à la session. L'objet « connection » représente la connexion du client. A Événement de création de connexion L'objet est transmis au gestionnaire d'événements.

connexion interrompue -- Envoyé lorsqu'un autre client se déconnecte de la session. L'objet « connection » représente la connexion que le client avait établie avec la session. A Événement « Connexion interrompue » L'objet est transmis au gestionnaire d'événements.

erreur (Objet) — Envoyé si la tentative de connexion à la session échoue ou si la connexion à la session est interrompue en raison d'une erreur après une connexion réussie. Un Événement d'erreur L'objet est transmis au gestionnaire d'événements.

muteForced -- Envoyé lorsqu'un modérateur a forcé les clients diffusant des flux vers la session à couper le son (le active propriété de ceci MuteForcedEvent L'objet est défini sur true), ou si un modérateur a désactivé la mise en sourdine du son dans la session (la propriété « active » de ce MuteForcedEvent L'objet est défini sur false). Un Événement d'erreur L'objet est transmis au gestionnaire d'événements.

otrnError -- Envoyé en cas d'erreur de communication entre l'instance de session native et le composant JS.

sessionConnected -- Envoyé lorsque le client se connecte à la session. A SessionConnectEvent L'objet est transmis au gestionnaire d'événements.

session déconnectée -- Envoyé lorsque le client se déconnecte de la session. A SessionDisconnectEvent L'objet est transmis au gestionnaire d'événements.

sessionReconnected -- Envoyé lorsque le client local s'est reconnecté à la session OpenTok après une perte temporaire de sa connexion réseau.

Reconnexion à la session -- Envoyé lorsque le client local a perdu sa connexion à une session OpenTok et tente de se reconnecter. Cela résulte d'une perte de connectivité réseau. Si le client parvient à se reconnecter à la session, le sessionReconnected le message est envoyé. Sinon, si le client ne parvient pas à se reconnecter, le sessionDisconnected est envoyé.

signal -- Envoyé lorsqu'un signal est reçu au cours de la session. A SignalEvent L'objet est transmis au gestionnaire d'événements.

streamCreated -- Envoyé lorsqu'un nouveau flux est créé dans cette session. A StreamCreatedEvent L'objet est transmis au gestionnaire d'événements.

streamDestroyed -- Envoyé lorsqu'un flux n'est plus publié vers la session. A StreamDestroyedEvent L'objet est transmis au gestionnaire d'événements.

streamPropertyChanged -- Envoyé lorsqu'un flux commence ou cesse de diffuser du contenu audio ou vidéo, ou lorsque les dimensions vidéo du flux changent. A StreamPropertyChangedEvent L'objet est transmis au gestionnaire d'événement.