Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, migrará una aplicación de chat de Socket.IO a Azure mediante Web PubSub para Socket.IO.
Importante
Las cadenas de conexión sin procesar solo aparecen en este artículo con fines de demostración.
Una cadena de conexión incluye la información de autorización necesaria para que la aplicación acceda al servicio Azure Web PubSub. La clave de acceso dentro de la cadena de conexión es similar a una contraseña raíz para el servicio. En entornos de producción, proteja siempre las claves de acceso. Use Azure Key Vault para administrar y rotar las claves de forma segura y proteja la conexión con WebPubSubServiceClient.
Evite distribuirlas a otros usuarios, codificarlas de forma rígida o guardarlas en un archivo de texto sin formato al que puedan acceder otros usuarios. Rote sus claves si cree que se han puesto en peligro.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. En caso de no tener ninguna, puede crear una gratis.
- Conocimientos de la biblioteca de Socket.IO.
Creación de un recurso de Web PubSub para Socket.IO
Vaya a Azure Portal.
Busque socket.ioy seleccione Web PubSub para Socket.IO.
Seleccione un plan y, a continuación, seleccione Crear.
Migración de la aplicación
Para el proceso de migración de esta guía, usará una aplicación de chat de ejemplo proporcionada en Sitio web de Socket.IO. Debe realizar algunos cambios menores en el código del lado servidor y del lado cliente para completar la migración.
En el servidor
Busque
index.jsen el código del lado servidor.Incorporación del paquete
@azure/web-pubsub-socket.io:npm install @azure/web-pubsub-socket.ioImporte el paquete:
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");Busque en el código del lado servidor donde creó el servidor de Socket.IO y anexe useAzureSocketIO(...):
Las cadenas de conexión sin procesar solo aparecen en este artículo con fines de demostración. En entornos de producción, proteja siempre las claves de acceso. Use Azure Key Vault para administrar y rotar las claves de forma segura y proteja la conexión con
WebPubSubServiceClient.const io = require("socket.io")(); useAzureSocketIO(io, { hub: "eio_hub", // The hub name can be any valid string. connectionString: process.argv[2] });Importante
El método
useAzureSocketIOes asincrónico y realiza los pasos de inicialización para conectarse a Web PubSub. Puede usarawait useAzureSocketIO(...)o usaruseAzureSocketIO(...).then(...)para asegurarse de que el servidor de aplicaciones comienza a atender solicitudes después de que la inicialización se realice correctamente.Si usa las siguientes API de servidor, agregue
asyncantes de usarlas, ya que son asincrónicas con Web PubSub para Socket.IO:Por ejemplo, si hay código similar al siguiente:
io.on("connection", (socket) => { socket.join("room abc"); });Actualícelo a:
io.on("connection", async (socket) => { await socket.join("room abc"); });En este ejemplo de chat no se usa ninguna de esas API. Por lo tanto, no es necesario realizar ningún cambio.
En el cliente
Busque el punto de conexión al recurso en Azure Portal.
Vaya a
./public/main.jsen el código del lado cliente.Busque dónde se crea el cliente Socket.IO. Reemplace su punto de conexión por el punto de conexión de Socket.IO en Azure y agregue una opción de
path:const socket = io("<web-pubsub-for-socketio-endpoint>", { path: "/clients/socketio/hubs/eio_hub", });