La documentation Pulse évolue : partagez votre avis en bas de chaque page.
SDK Unity 0.1.3 · stable

Configurer la connexion

Installer PulseManager et PulseMDMClient, choisir l'URL et comprendre la reconnexion.

Objectif

Connecter l'application au bon broker, sans dupliquer le runtime ni bloquer le thread principal Unity.

Les deux composants

ComposantResponsabilité
PulseManagerWebSocket, file d'événements du thread principal, reconnexion et envoi brut
PulseMDMClientJoin PULSE_SDK, génération du schéma, traitement de CMD, SET et SYNC

Ajoutez un seul exemplaire de chacun. Placez PulseManager avant PulseMDMClient sur l'objet, et assurez-vous que le manager est créé et activé avant le client. Le manager est conservé avec DontDestroyOnLoad et refuse un second singleton.

Ne mettez pas un autre couple dans chaque scène. Les doublons peuvent se détruire au chargement et rendre l'ordre d'initialisation difficile à diagnostiquer.

Choisir l'URL

SituationURL typique
Build exécuté sur le casque, broker MDM sur ce casquews://127.0.0.1:10002
Play Mode sur le PC, broker sur un casquews://<IP-DU-CASQUE>:10002
Broker de développement sur le PCws://127.0.0.1:<port>

127.0.0.1 désigne toujours la machine qui exécute l'application. Depuis l'Editor, ce n'est donc pas le casque.

Pour un casque distant, vérifiez que le PC et le casque se voient sur le réseau, que le port est accessible et qu'aucun réseau invité n'isole les clients.

Connexion automatique ou manuelle

Avec Connect On Start, PulseManager appelle Connect() au démarrage. Pour contrôler le moment vous-même, désactivez l'option :

using PulseSDK.Core;
using UnityEngine;

public sealed class PulseConnectionGate : MonoBehaviour
{
    public void ConnectWhenReady()
    {
        if (!PulseManager.Instance.IsConnected)
            PulseManager.Instance.Connect();
    }

    public void Disconnect()
    {
        PulseManager.Instance.Disconnect();
    }
}

Disconnect() est volontaire : il arrête la reconnexion. Une perte réseau involontaire lance au contraire un backoff exponentiel, à partir de 2 secondes et plafonné à 60 secondes. Une connexion réussie remet le compteur à zéro.

Observer l'état

Les événements sont exécutés sur le thread principal Unity :

using PulseSDK.Core;
using UnityEngine;

public sealed class PulseConnectionIndicator : MonoBehaviour
{
    private PulseManager manager;

    private void Start()
    {
        manager = PulseManager.Instance;
        manager.OnConnected += HandleConnected;
        manager.OnDisconnected += HandleDisconnected;
    }

    private void OnDestroy()
    {
        if (manager == null) return;
        manager.OnConnected -= HandleConnected;
        manager.OnDisconnected -= HandleDisconnected;
    }

    private void HandleConnected() => Debug.Log("Pulse connected");
    private void HandleDisconnected() => Debug.LogWarning("Pulse disconnected");
}

Vous pouvez donc modifier l'UI Unity dans ces callbacks. Désabonnez-vous toujours pour éviter les références vers des objets détruits.

Ce qui est envoyé après connexion

PulseMDMClient envoie successivement :

  1. un join dans PULSE_SDK, rôle sdk, ID Application.identifier ;
  2. le SCHEMA des PulseBehaviour déjà actifs.

Définissez donc un Bundle Identifier stable dans Player Settings. Si un composant pilotable est activé plus tard, demandez un SYNC depuis le contrôleur pour recevoir un nouveau schéma.

Ce que vous devez avoir à la fin

  • Un seul PulseManager persiste entre les scènes.
  • Un seul PulseMDMClient écoute ce manager.
  • L'URL correspond à la machine où tourne réellement le broker.
  • Une coupure involontaire déclenche une reconnexion ; Disconnect() l'arrête.
  • Le testeur voit un SDK identifié par le Bundle Identifier.

Étape suivante : exposer des actions.

Cette page vous a-t-elle aidé ?

Dernière mise à jour le

Sur cette page