Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
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 o autoryzacji wymagane przez aplikację w celu uzyskania dostępu do usługi Azure Web PubSub. Klucz dostępu wewnątrz parametry połączenia jest podobny do hasła głównego 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, na którym utworzono serwer Socket.IO, i dołącz polecenie 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ć polecenia lub użyćawait useAzureSocketIO(...)useAzureSocketIO(...).then(...)polecenia , aby upewnić się, że serwer aplikacji zacznie obsługiwać żądania po pomyślnym zainicjowaniu.Jeśli używasz następujących interfejsów API serwera, dodaj
asyncje przed ich użyciem, ponieważ są one asynchroniczne z usługą 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.jspozycji w kodzie po stronie klienta.Znajdź miejsce utworzenia klienta Socket.IO. Zastąp punkt końcowy punktem końcowym Socket.IO na platformie Azure i dodaj
pathopcję:const socket = io("<web-pubsub-for-socketio-endpoint>", { path: "/clients/socketio/hubs/eio_hub", });