Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você migra um aplicativo de chat Socket.IO para o Azure usando o Web PubSub para Socket.IO.
Importante
As cadeias de conexão brutas aparecem neste artigo somente para fins de demonstração.
Uma cadeia de conexão inclui as informações de autorização que sua aplicação precisa para acessar o serviço Azure Web PubSub. A chave de acesso na cadeia de conexão funciona como uma senha root para o seu serviço. Em ambientes de produção, sempre proteja suas chaves de acesso. Use o Azure Key Vault para gerenciar e girar suas chaves com segurança e proteger sua conexão com WebPubSubServiceClient.
Evite distribuir chaves de acesso para outros usuários, fazer hard-coding com elas ou salvá-las em qualquer lugar em texto sem formatação que seja acessível a outras pessoas. Gire suas chaves se você acredita que elas podem ter sido comprometidas.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Se você não tiver uma, poderá criar uma conta gratuita.
- Alguma familiaridade com a biblioteca de Socket.IO.
Criar um recurso Web PubSub no Socket.IO
Acesse o portal do Azure.
Pesquise socket.io na barra de pesquisa e selecione Web PubSub para Socket.IO.
Selecione um plano e selecione Criar.
Migrar o aplicativo
Para o processo de migração neste guia, você usa um aplicativo de chat de exemplo fornecido no site do Socket.IO. Você precisa fazer algumas pequenas alterações no código do lado do servidor e do lado do cliente para concluir a migração.
Lado do Servidor
Localize
index.jsno código do lado do servidor.Adicione o pacote
@azure/web-pubsub-socket.io:npm install @azure/web-pubsub-socket.ioImportar o pacote:
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");Localize em seu código do lado do servidor em que você criou o servidor Socket.IO e acrescente useAzureSocketIO(...):
As cadeias de conexão brutas aparecem neste artigo somente para fins de demonstração. Em ambientes de produção, sempre proteja suas chaves de acesso. Use o Azure Key Vault para gerenciar e girar suas chaves com segurança e proteger sua conexão com
WebPubSubServiceClient.const io = require("socket.io")(); useAzureSocketIO(io, { hub: "eio_hub", // The hub name can be any valid string. connectionString: process.argv[2] });Importante
O método
useAzureSocketIOé assíncrono e executa etapas de inicialização para se conectar ao Web PubSub. Você poderá usarawait useAzureSocketIO(...)ou usaruseAzureSocketIO(...).then(...)para garantir que o servidor de aplicativos comece a atender solicitações depois que a inicialização for bem-sucedida.Se você usar as seguintes APIs de servidor, adicione
asyncantes de usá-las, pois elas são assíncronas com o Web PubSub para Socket.IO:Por exemplo, se houver um código como este:
io.on("connection", (socket) => { socket.join("room abc"); });Atualize-o para:
io.on("connection", async (socket) => { await socket.join("room abc"); });Este exemplo de chat não usa nenhuma dessas APIs. Você não precisa fazer nenhuma alteração.
Lado do cliente
Encontre o ponto de extremidade do seu recurso no portal do Azure.
Acesse o
./public/main.jsno código do lado do cliente.Localize onde o cliente Socket.IO é criado. Substitua seu endpoint pelo endpoint do Socket.IO no Azure e adicione uma opção
path:const socket = io("<web-pubsub-for-socketio-endpoint>", { path: "/clients/socketio/hubs/eio_hub", });