Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы переносите приложение чата Socket.IO в Azure с помощью Web PubSub для Socket.IO.
Внимание
Необработанные строка подключения отображаются в этой статье только для демонстрационных целей.
Строка подключения содержит сведения об авторизации, требуемые для доступа приложения к службе Azure Web PubSub. Ключ доступа в строке подключения аналогичен паролю привилегированного пользователя для службы. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault для безопасного управления ключами и защиты подключения.WebPubSubServiceClient
Старайтесь не распространять ключи доступа среди других пользователей, жестко программировать их или где-то сохранять в виде обычного текста в открытом доступе для других пользователей. Меняйте свои ключи постоянно, если предполагаете, что они могут быть подобраны.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если ее нет, можно создать бесплатную учетную запись.
- Некоторые знания о библиотеке Socket.IO.
Создание веб-pubSub для ресурса Socket.IO
Переход на портал Azure.
Найдите socket.io, а затем выберите Web PubSub для Socket.IO.
Выберите план и нажмите кнопку "Создать".
Перенос приложения
Для процесса миграции в этом руководстве вы используете пример приложения чата, предоставленного на веб-сайте Socket.IO. Для завершения миграции необходимо внести некоторые незначительные изменения в код на стороне сервера и на стороне клиента.
На стороне сервера
Найдите
index.js
код на стороне сервера.@azure/web-pubsub-socket.io
Добавьте пакет:npm install @azure/web-pubsub-socket.io
Импортируйте пакет:
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");
Найдите в серверном коде, где вы создали сервер Socket.IO, и добавьте useAzureSocketIO(...):
Необработанные строка подключения отображаются в этой статье только для демонстрационных целей. В рабочих средах всегда защищать ключи доступа. Используйте Azure Key Vault для безопасного управления ключами и защиты подключения.
WebPubSubServiceClient
const io = require("socket.io")(); useAzureSocketIO(io, { hub: "eio_hub", // The hub name can be any valid string. connectionString: process.argv[2] });
Внимание
Метод
useAzureSocketIO
является асинхронным и выполняет шаги инициализации для подключения к Web PubSub. Вы можете использовать или использоватьawait useAzureSocketIO(...)
useAzureSocketIO(...).then(...)
, чтобы убедиться, что сервер приложений начинает обслуживать запросы после успешной инициализации.Если вы используете следующие API-интерфейсы сервера, добавьте
async
их перед их использованием, так как они асинхронные с Web PubSub для Socket.IO:Например, если такой код выглядит следующим образом:
io.on("connection", (socket) => { socket.join("room abc"); });
Обновите его до:
io.on("connection", async (socket) => { await socket.join("room abc"); });
В этом примере чата не используется ни один из этих API. Поэтому вам не нужно вносить какие-либо изменения.
На стороне клиента
Найдите конечную точку ресурса в портал Azure.
./public/main.js
Перейдите в клиентский код.Найдите место создания Socket.IO клиента. Замените конечную точку Socket.IO конечной точкой в Azure и добавьте
path
параметр:const socket = io("<web-pubsub-for-socketio-endpoint>", { path: "/clients/socketio/hubs/eio_hub", });