Sdílet prostřednictvím


Migrace Socket.IO aplikace v místním prostředí, aby byla plně spravovaná v Azure

V tomto článku migrujete chatovací aplikaci Socket.IO do Azure pomocí web PubSub pro Socket.IO.

Důležité

Nezpracované připojovací řetězec se v tomto článku zobrazují jenom pro demonstrační účely.

Připojovací řetězec obsahuje informace o autorizaci vyžadované pro vaši aplikaci pro přístup ke službě Azure Web PubSub. Přístupový klíč uvnitř připojovací řetězec je podobný kořenovému heslu pro vaši službu. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojení WebPubSubServiceClient.

Vyhněte se distribuci přístupových klíčů ostatním uživatelům, jejich pevnému kódování nebo jejich uložení kdekoli ve formátu prostého textu, který je přístupný ostatním uživatelům. Otočte klíče, pokud se domníváte, že mohly být ohroženy.

Požadavky

  • Účet Azure s aktivním předplatným. Pokud žádné nemáte, můžete si vytvořit bezplatný účet.
  • Znalost knihovny Socket.IO

Vytvoření webového pubSub pro prostředek Socket.IO

  1. Přejděte na Azure Portal.

  2. Vyhledejte socket.io a pak vyberte Web PubSub pro Socket.IO.

  3. Vyberte plán a pak vyberte Vytvořit.

    Snímek obrazovky webu PubSub pro službu Socket.IO na webu Azure Portal

Migrace aplikace

Pro proces migrace v této příručce použijete ukázkovou chatovací aplikaci poskytnutou na webu Socket.IO. K dokončení migrace je potřeba provést několik menších změn kódu na straně serveru i na straně klienta.

Na straně serveru

  1. Vyhledejte index.js kód na straně serveru.

  2. @azure/web-pubsub-socket.io Přidejte balíček:

    npm install @azure/web-pubsub-socket.io
    
  3. Import balíčku:

    const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");
    
  4. Vyhledejte kód na straně serveru, kde jste vytvořili Socket.IO server, a připojte useAzureSocketIO(...):

    Nezpracované připojovací řetězec se v tomto článku zobrazují jenom pro demonstrační účely. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojení WebPubSubServiceClient.

    const io = require("socket.io")();
    useAzureSocketIO(io, {
        hub: "eio_hub", // The hub name can be any valid string.
        connectionString: process.argv[2]
    });
    

    Důležité

    Metoda useAzureSocketIO je asynchronní a provádí kroky inicializace pro připojení k Web PubSub. Můžete použít await useAzureSocketIO(...) nebo použít useAzureSocketIO(...).then(...) k ověření, že aplikační server začne obsluhovat požadavky po úspěšném inicializaci.

  5. Pokud používáte následující rozhraní API serveru, přidejte async je před jejich použitím, protože jsou asynchronní s web pubSub pro Socket.IO:

    Pokud je například kód podobný tomuto:

    io.on("connection", (socket) => { socket.join("room abc"); });
    

    Aktualizujte ho na:

    io.on("connection", async (socket) => { await socket.join("room abc"); });
    

    Tento příklad chatu nepoužívá žádná z těchto rozhraní API. Takže nemusíte provádět žádné změny.

Na straně klienta

  1. Na webu Azure Portal najděte koncový bod vašeho prostředku.

    Snímek obrazovky se získáním koncového bodu do podsítě Web PubSub pro prostředek Socket.IO

  2. Přejděte do ./public/main.js kódu na straně klienta.

  3. Vyhledejte, kde se vytvoří Socket.IO klient. Nahraďte jeho koncový bod koncovým bodem Socket.IO v Azure a přidejte path možnost:

    const socket = io("<web-pubsub-for-socketio-endpoint>", {
        path: "/clients/socketio/hubs/eio_hub",
    });