Pulse Documentation
  • General
  • Open MDM
  • Control (Mobile App)
  • Bienvenue
  • Quoi de neuf ? *Changelog*
    • V16 - 22/04/2025
    • V14 - 17/02/2025
    • V13 - 27/01/2025
  • GENERAL
    • Quickstart
      • Obtenir un token
    • API Reference
      • Devices
    • Suivi d'utilisation de l'API
      • 1. Récupérer toutes les logs
      • 2. Synthèse
      • 3. Nombre de requêtes
      • 4. Complexité des requêtes
      • 5. Activité des appareils
      • 6. Routes les plus utilisées
  • Utilisation avancée
    • Lancer une commande
      • Lancer un partage d'écran
    • Configurer un appareil
      • Ajouter des éléments
        • Ajouter des fichiers
        • Ajouter des applications
        • Ajouter des vidéos
        • Ajouter des packages
      • Supprimer des éléments
        • Supprimer des fichiers
        • Supprimer des applications
        • Supprimer des vidéos
    • S’abonner à un appareil
    • Connaitre le type d'appareil
    • Un appareil est-il disponible ?
  • GESTION DES CONTENUS
    • Suppression d'un contenu
    • Mettre à jour une application
Propulsé par GitBook
Sur cette page
  1. Utilisation avancée

S’abonner à un appareil

Cette page explique comment obtenir une mise à jour des informations d'un appareil à chaque modification.

SSE /devices/{id}/updates

Cet endpoint utilise le mécanisme SSE (Server-Sent Events), une technologie de communication unidirectionnelle en temps réel. Il permet de recevoir instantanément toutes les mises à jour concernant les informations de l'appareil stockées dans l'API.

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Exemples d'implementation

JavaScript possède une implémentation native d'EventSource. Cependant, il est recommandé d'utiliser un polyfill d'EventSource (tel que "event-source-polyfill" dans cet exemple) pour accéder à des fonctionnalités avancées comme la personnalisation des en-têtes, ce qui est essentiel pour l'inclusion du token Bearer.

// Importer le polyfill
const { EventSourcePolyfill } = require('event-source-polyfill');
// Ton Bearer Token
const token = 'votre token';

// Utiliser EventSourcePolyfill pour envoyer le token dans l'en-tête Authorization
const eventSource = new EventSourcePolyfill('https://mdm.pulse-xr.com/devices/:id/updates', {
  headers: {
    'Authorization': `Bearer ${token}`
  }
});

eventSource.onopen = function(data) {
    console.log("connection opened ");
}

eventSource.onmessage = function(event) {
   const updatedDevice = JSON.parse(event.data);
   console.log('Mise à jour du device:', updatedDevice);
};

eventSource.onerror = function(err) {
  console.error('Erreur dans la connexion SSE:' + err);
};
import requests
import sseclient

# URL du serveur SSE
url = "https://mdm.pulse-xr.com/devices/:id/updates"

# Bearer Token
headers = {
    "Authorization": "Bearer votre_token"
}

# Ouvrir la connexion SSE
response = requests.get(url, headers=headers, stream=True)
client = sseclient.SSEClient(response)

for event in client.events():
    print("Mise à jour du device:", event.data)
import okhttp3.*
import java.io.IOException

fun main() {
    val client = OkHttpClient()

    val request = Request.Builder()
        .url("https://mdm.pulse-xr.com/devices/:id/updates")
        .addHeader("Authorization", "Bearer votre_token")
        .build()

    client.newCall(request).enqueue(object : Callback {
        override fun onFailure(call: Call, e: IOException) {
            println("Erreur SSE: ${e.message}")
        }

        override fun onResponse(call: Call, response: Response) {
            response.body?.string()?.let {
                println("Mise à jour du device: $it")
            }
        }
    })
}
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("Authorization", "Bearer votre_token");
            var response = await client.GetStreamAsync("https://mdm.pulse-xr.com/devices/:id/updates");

            using (StreamReader reader = new StreamReader(response))
            {
                string line;
                while ((line = await reader.ReadLineAsync()) != null)
                {
                    Console.WriteLine($"Mise à jour du device: {line}");
                }
            }
        }
    }
}

package main

import (
	"bufio"
	"fmt"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://mdm.pulse-xr.com/devices/:id/updates", nil)
	req.Header.Set("Authorization", "Bearer votre_token")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Erreur SSE:", err)
		return
	}
	defer resp.Body.Close()

	scanner := bufio.NewScanner(resp.Body)
	for scanner.Scan() {
		fmt.Println("Mise à jour du device:", scanner.Text())
	}
}

Response

PrécédentSupprimer des vidéosSuivantConnaitre le type d'appareil

Dernière mise à jour il y a 4 mois

{
	"id": string,
	"enrollmentToken": string,
	"enterprise": Enterprise,
	"macAddress": string, 
	"androidId": string, // nullable
	"description": string, // nullable
	"temporaryVerificationCode": TemporaryVerificationCode, // nullable
	"settings": Settings,
	"type": TypeDevice,
	"isAvailable": boolean,
	"mdmInfo": { "codeVersion": integer, "labelVersion": string, "isDeviceOwner": boolean } //nullable
	
}