Szybki start: dołączanie usługi Web PubSub do Socket.IO w aplikacji

Ten przewodnik Szybki start pokazuje, jak utworzyć zasób Web PubSub dla Socket.IO i szybko zintegrować go z aplikacją Socket.IO, aby uprościć tworzenie aplikacji, przyspieszyć wdrażanie i uzyskać skalowalność bez zbędnej złożoności.

Kod przedstawiony w tym przewodniku Szybki start jest napisany w standardzie CommonJS. Jeśli chcesz użyć modułu ECMAScript, zobacz pokaz czatu dla Socket.IO z usługą Azure Web PubSub.

Ważne

Nieprzetworzone parametry połączenia są wyświetlane tylko w tym artykule w celach demonstracyjnych.

parametry połączenia zawiera informacje autoryzacyjne potrzebne Twojej aplikacji, aby uzyskać dostęp do usługi Azure Web PubSub. Klucz dostępu w parametry połączenia działa jak hasło root dla Twojej usługi. W środowiskach produkcyjnych zawsze chroń klucze dostępu. Użyj usługi Azure Key Vault, aby bezpiecznie zarządzać kluczami i obracać je oraz zabezpieczać połączenie za pomocą usługi WebPubSubServiceClient.

Unikaj dystrybuowania kluczy dostępu do innych użytkowników, kodowania ich lub zapisywania ich w dowolnym miejscu w postaci zwykłego tekstu, który jest dostępny dla innych użytkowników. Obracanie kluczy, jeśli uważasz, że mogły one zostać naruszone.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz, możesz utworzyć bezpłatne konto.
  • Znajomość biblioteki Socket.IO.

Tworzenie usługi Web PubSub dla zasobu Socket.IO

Aby utworzyć usługę Web PubSub dla Socket.IO, możesz użyć poniższego przycisku tworzenia jednym kliknięciem lub wykonać poniższe czynności, aby wyszukać ją w portalu Azure.

  • Użyj poniższego przycisku, aby utworzyć zasób Web PubSub for Socket.IO w Azure

    Wdróż na platformie Azure

  • Wyszukaj za pomocą paska wyszukiwania w portalu Azure

    1. Przejdź do portalu Azure Portal.

    2. Wyszukaj socket.io na pasku wyszukiwania, a następnie wybierz pozycję Web PubSub dla Socket.IO.

      Zrzut ekranu przedstawiający wyszukiwanie usługi Web PubSub pod kątem usługi Socket.IO w witrynie Azure Portal.

  • Szukaj w Marketplace

    1. Przejdź do portalu Azure Portal.

    2. Wybierz przycisk Utwórz zasób znajdujący się w lewym górnym rogu witryny Azure Portal. Wpisz socket.io w polu wyszukiwania i naciśnij Enter. Wybierz pozycję Web PubSub dla Socket.IO w wynikach wyszukiwania.

      Zrzut ekranu przedstawiający usługę Web PubSub dla usługi Socket.IO w witrynie Marketplace.

    3. Kliknij Utwórz w wysuwanym panelu.

      Zrzut ekranu przedstawiający usługę Web PubSub dla usługi Socket.IO w witrynie Azure Portal.

Wysyłanie komunikatów za pomocą bibliotek Socket.IO i web pubSub dla Socket.IO

W poniższych krokach utworzysz projekt Socket.IO i zintegrujesz się z usługą Web PubSub dla Socket.IO.

Inicjowanie projektu Node i instalowanie wymaganych pakietów

mkdir quickstart
cd quickstart
npm init
npm install @azure/web-pubsub-socket.io socket.io-client

Pisanie kodu serwera

server.js Utwórz plik i dodaj następujący kod, aby utworzyć serwer Socket.IO i zintegrować go z usługą Web PubSub dla Socket.IO.

Nieprzetworzone parametry połączenia są wyświetlane tylko w tym artykule w celach demonstracyjnych. W środowiskach produkcyjnych zawsze chroń klucze dostępu. Użyj usługi Azure Key Vault, aby bezpiecznie zarządzać kluczami i obracać je oraz zabezpieczać połączenie za pomocą usługi WebPubSubServiceClient.

/*server.js*/
const { Server } = require("socket.io");
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");

let io = new Server(3000);

// Use the following line to integrate with Web PubSub for Socket.IO
useAzureSocketIO(io, {
    hub: "Hub", // The hub name can be any valid string.
    connectionString: process.argv[2]
});

io.on("connection", (socket) => {
    // Sends a message to the client
    socket.emit("hello", "world");

    // Receives a message from the client
    socket.on("howdy", (arg) => {
        console.log(arg);   // Prints "stranger"
    })
});

Pisanie kodu klienta

client.js Utwórz plik i dodaj następujący kod, aby połączyć klienta z usługą Web PubSub dla Socket.IO.

/*client.js*/
const io = require("socket.io-client");

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

// Receives a message from the server
socket.on("hello", (arg) => {
    console.log(arg);
});

// Sends a message to the server
socket.emit("howdy", "stranger")

Gdy używasz usługi Web PubSub dla Socket.IO, <web-pubsub-socketio-endpoint> i path są wymagane, aby klient mógł połączyć się z usługą. Element <web-pubsub-socketio-endpoint> i path można znaleźć w witrynie Azure Portal.

  1. Przejdź do bloku klucza usługi Web PubSub dla Socket.IO

  2. Wpisz nazwę hubu i skopiuj punkt końcowy klienta oraz ścieżkę klienta

    Zrzut ekranu usługi Web PubSub dla Socket.IO w bloku punktów końcowych klienta w portalu Azure.

Uruchom aplikację

  1. Uruchom aplikację serwera:

    node server.js "<connection-string>"
    

    <connection-string> to ciąg połączenia zawierający punkt końcowy i klucze umożliwiające uzyskiwanie dostępu do zasobu Web PubSub for Socket.IO. Parametry połączenia można również znaleźć w witrynie Azure Portal

    Zrzut ekranu przedstawiający usługę Web PubSub dla Socket.IO w bloku parametrów połączenia w portalu Azure.

  2. Uruchom aplikację kliencka w innym terminalu:

    node client.js