Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo articolo si esegue la migrazione di un'app di chat Socket.IO ad Azure usando Web PubSub per Socket.IO.
Importante
Le stringa di connessione non elaborate vengono visualizzate in questo articolo solo a scopo dimostrativo.
Una stringa di connessione include le informazioni di autorizzazione di cui la tua applicazione ha bisogno per accedere al servizio Azure Web PubSub. La chiave di accesso nella stringa di connessione agisce come una password root per il tuo servizio. Negli ambienti di produzione proteggere sempre le chiavi di accesso. Usare Azure Key Vault per gestire e ruotare le chiavi in modo sicuro e proteggere la connessione con WebPubSubServiceClient.
Evitare di distribuire le chiavi di accesso ad altri utenti, impostarle come hardcoded o salvarle in un file di testo normale accessibile ad altri. Sostituisci le chiavi se ritieni che possano essere state compromesse.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Se non si ha un account, è possibile crearne uno gratuito.
- Una certa familiarità con la libreria di Socket.IO.
Creare una risorsa Web PubSub per Socket.IO
Vai al portale di Azure.
Cercare socket.io e quindi selezionare Web PubSub per Socket.IO.
Selezionare un piano e quindi selezionare Crea.
Eseguire la migrazione dell'app
Per il processo di migrazione in questa guida, si usa un'app di chat di esempio fornita nel sito Web di Socket.IO. Per completare la migrazione, è necessario apportare alcune modifiche secondarie sia al codice lato server che al codice lato client.
Lato server
Individuare
index.jsnel codice sul lato server.Aggiungere il pacchetto
@azure/web-pubsub-socket.io:npm install @azure/web-pubsub-socket.ioImportare il pacchetto:
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");Individua nel codice server-side dove hai creato il server Socket.IO e aggiungi useAzureSocketIO(...):
Le stringa di connessione non elaborate vengono visualizzate in questo articolo solo a scopo dimostrativo. Negli ambienti di produzione proteggere sempre le chiavi di accesso. Usare Azure Key Vault per gestire e ruotare le chiavi in modo sicuro e proteggere la connessione con
WebPubSubServiceClient.const io = require("socket.io")(); useAzureSocketIO(io, { hub: "eio_hub", // The hub name can be any valid string. connectionString: process.argv[2] });Importante
Il
useAzureSocketIOmetodo è asincrono ed esegue i passaggi di inizializzazione per connettersi a Web PubSub. È possibile usareawait useAzureSocketIO(...)o usareuseAzureSocketIO(...).then(...)per assicurarsi che il server app inizi a gestire le richieste dopo che l'inizializzazione ha esito positivo.Se si usano le API server seguenti, aggiungere
asyncprima di usarle, perché sono asincrone con Web PubSub per Socket.IO:Ad esempio, se è presente codice simile al seguente:
io.on("connection", (socket) => { socket.join("room abc"); });Aggiornarlo in:
io.on("connection", async (socket) => { await socket.join("room abc"); });Questo esempio di chat non usa alcuna di queste API. Non è quindi necessario apportare modifiche.
Lato client
Trovare l'endpoint della risorsa nel portale di Azure.
Passare a
./public/main.jsnel codice client-side.Trovare la posizione in cui viene creato il client Socket.IO. Sostituire il relativo endpoint con quello Socket.IO in Azure e aggiungere un'opzione
path:const socket = io("<web-pubsub-for-socketio-endpoint>", { path: "/clients/socketio/hubs/eio_hub", });