Mercure-Hub: Pradžia su Mercure-hub
Ši dokumentacija yra Pradžia vadovo dalis. Visą vadovą rasite čia: Kaip pradėti naudotis Mercure-hub.
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti Mercure-Hub cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:
- Neriboti užklausų ir pranešimų dydžiai.
- Pritaikomas domeno vardas, apsaugotas HTTPS (pavyzdžiui, https://real-time.jūsų-įmonė.com).
- Lengvi atnaujinimai vienu paspaudimu.
- Optimali veikla ir tvirta sauga, užtikrinama privačiu ir dedikuotu VM.
- Prieinama 🇪🇺 Europoje ir 🇺🇸 JAV.
Taupykite laiką ir supaprastinkite savo gyvenimą: tereikia 5 minučių, kad išbandytumėte Stackhero Mercure-Hub cloud hosting sprendimą!
Kliento pusėje (jūsų front end) paprastas JavaScript kodas, naudojantis HTML5 SSE API, yra viskas, ko jums reikia.
Pastaba: Šiame pavyzdyje prenumeratorius nėra autentifikuotas. Kad šis pavyzdys veiktų, turite leisti anoniminius prenumeratorius Stackhero prietaisų skydelyje.
const endpoint = '<XXXXXX>.stackhero-network.com';
const url = new URL('https://' + endpoint + '/.well-known/mercure');
// Pridėti temas klausymui
url.searchParams.append('topic', `https://${endpoint}/users/1234`);
url.searchParams.append('topic', `https://${endpoint}/books/1`);
const eventSource = new EventSource(url);
// Kiekvieną kartą, kai paskelbiama atnaujinimas, iškviečiamas atgalinis skambutis
eventSource.onmessage = e => console.log(e);
Serverio pusėje (jūsų back end), kai norite išsiųsti atnaujinimą, tiesiog siųskite POST užklausą į Mercure-hub API. Žemiau pateiktas pavyzdys naudojant Node.js kartu su JsonWebToken ir Request bibliotekomis:
const jwt = require('jsonwebtoken');
const request = require('request');
const endpoint = '<XXXXXX>.stackhero-network.com';
const publisherJwtKey = '<your publisher JWT key>';
// Apibrėžti duomenis siuntimui
const data = {
// Tema, kurioje bus siunčiami duomenys
topic: `https://${endpoint}/books/1`,
// Duomenys, kurie bus siunčiami į temą
data: JSON.stringify({
available: false,
date: new Date()
})
};
// Generuoti bearer tokeną
const bearer = jwt.sign(
{ mercure: { publish: [ data.topic ] } },
publisherJwtKey,
{
expiresIn: 60, // Tokenas galioja vieną minutę
noTimestamp: true // Neįtraukti 'išduota' laiko žymės, kad išvengtumėte "Token used before issued" klaidų
}
);
// Siųsti duomenis į Mercure-hub, kad jis išplatintų atnaujinimą klientams
request.post(
{
url: `https://${endpoint}/.well-known/mercure`,
auth: { bearer },
form: data
},
(err, res) => err ? console.error(err) : console.log(res)
);
Ir viskas! Dabar turite prenumeratorių front end ir leidėją back end, kurie veikia kartu sklandžiai.