Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule migrujesz aplikację do czatu Socket.IO na platformę Azure przy użyciu usługi Web PubSub dla Socket.IO.
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
Przejdź do portalu Azure Portal.
Wyszukaj socket.io, a następnie wybierz pozycję Web PubSub dla Socket.IO.
Wybierz plan, a następnie wybierz pozycję Utwórz.
Migrowanie aplikacji
W przypadku procesu migracji w tym przewodniku użyjesz przykładowej aplikacji czatu udostępnionej w witrynie internetowej Socket.IO. Aby ukończyć migrację, należy wprowadzić drobne zmiany zarówno po stronie serwera, jak i po stronie klienta.
Strona serwera
Znajdź
index.jsw kodzie po stronie serwera.@azure/web-pubsub-socket.ioDodaj pakiet:npm install @azure/web-pubsub-socket.ioZaimportuj pakiet:
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");Znajdź w kodzie po stronie serwera miejsce, w którym utworzono serwer Socket.IO, i dodaj useAzureSocketIO(...):
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.const io = require("socket.io")(); useAzureSocketIO(io, { hub: "eio_hub", // The hub name can be any valid string. connectionString: process.argv[2] });Ważne
Metoda
useAzureSocketIOjest asynchroniczna i wykonuje kroki inicjowania w celu nawiązania połączenia z usługą Web PubSub. Możesz użyćawait useAzureSocketIO(...)lubuseAzureSocketIO(...).then(...), aby upewnić się, że serwer aplikacji zacznie obsługiwać żądania po pomyślnym zakończeniu inicjalizacji.Jeśli używasz następujących interfejsów API serwera, dodaj
asyncprzed ich użyciem, ponieważ działają asynchronicznie w usłudze Web PubSub dla Socket.IO:Jeśli na przykład istnieje kod podobny do następującego:
io.on("connection", (socket) => { socket.join("room abc"); });Zaktualizuj go do:
io.on("connection", async (socket) => { await socket.join("room abc"); });Ten przykład czatu nie używa żadnego z tych interfejsów API. Dlatego nie musisz wprowadzać żadnych zmian.
Strona klienta
Znajdź punkt końcowy zasobu w witrynie Azure Portal.
Przejdź do
./public/main.jsw kodzie po stronie klienta.Znajdź miejsce utworzenia klienta Socket.IO. Zastąp jego punkt końcowy punktem końcowym Socket.IO w usłudze Azure i dodaj opcję
path:const socket = io("<web-pubsub-for-socketio-endpoint>", { path: "/clients/socketio/hubs/eio_hub", });