Inicio rápido: Creación de un salón de chat con ASP.NET y SignalR Service

Azure SignalR Service se basa en SignalR para ASP.NET Core 2.1, que no es totalmente compatible con ASP.NET SignalR. Azure SignalR Service reimplementó el protocolo de datos de ASP.NET SignalR según las últimas tecnologías de ASP.NET Core. Al usar Azure SignalR Service para ASP.NET SignalR, ya no se admiten algunas características de ASP.NET SignalR, por ejemplo, Azure SignalR no reproduce los mensajes cuando el cliente se vuelve a conectar. Además, el transporte Forever Frame y JSONP no son compatibles. Se necesitan algunos cambios de código y la versión apropiada de las bibliotecas dependientes para que al aplicación de ASP.NET SignalR funcione con SignalR Service.

Consulte el documento con las diferencias entre versiones para ver una lista de la comparación de características entre ASP.NET SignalR y ASP.NET Core SignalR.

En esta guía de inicio rápido, obtendrá información sobre cómo empezar a trabajar con ASP.NET y Azure SignalR Service para una aplicación de salón de chat similar.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Prerrequisitos

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Inicio de sesión en Azure

Inicie sesión en Azure Portal con su cuenta de Azure.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Creación de una instancia del servicio Azure SignalR

La aplicación se conectará a una instancia del servicio SignalR en Azure.

  1. Seleccione el botón Nuevo de la esquina superior izquierda en Azure Portal. En la pantalla Nuevo, escriba SignalR Service (Servicio SignalR) en el cuadro de búsqueda y presione Entrar.

    Captura de pantalla que muestra la búsqueda de SignalR Service en Azure Portal.

  2. Seleccione SignalR Service (Servicio SignalR) en los resultados de la búsqueda y, a continuación, seleccione Crear.

  3. Escriba la siguiente configuración.

    Configuración Valor sugerido Descripción
    Nombre del recurso Nombre único globalmente Nombre que identifica la nueva instancia del servicio SignalR. Los caracteres válidos son a-z, 0-9 y -.
    Suscripción Su suscripción Suscripción en que se creará esta nueva instancia del servicio SignalR.
    Grupo de recursos myResourceGroup Nombre del nuevo grupo de recursos en el que se va a crear la instancia del servicio SignalR.
    Ubicación Oeste de EE. UU. Seleccione una región cerca de usted.
    Plan de tarifa Gratuito Pruebe el servicio Azure SignalR de forma gratuita.
    Recuento de unidades No aplicable El recuento de unidades especifica cuántas conexiones puede aceptar la instancia del servicio SignalR. Solo es configurable en el nivel Estándar.
    Modo de servicio Sin servidor Para su uso con Azure Functions o la API REST.

    Captura de pantalla que muestra la pestaña Aspectos básicos de SignaIR con valores.

  4. Seleccione Crear para empezar a implementar la instancia del servicio SignalR.

  5. Una vez implementada la instancia, ábrala en el portal y busque su página de configuración. Cambie la configuración del modo de servicio Sin servidor solo si usa Azure SignalR Service a través del enlace de Azure Functions o la API de REST. Déjelo en Clásico o Predeterminado en caso contrario.

El modo sin servidor no es compatible para aplicaciones de ASP.NET SignalR. Use siempre las opciones Predeterminada o Clásica para la instancia de Azure SignalR Service.

También puede crear los recursos de Azure utilizados en esta guía de inicio rápido con la creación de un script de SignalR Service.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Clonación de la aplicación de ejemplo

Mientras se implementa el servicio, pasaremos a trabajar con el código. Clone la aplicación de ejemplo de GitHub, establezca la cadena de conexión del servicio SignalR y ejecute la aplicación de forma local.

  1. Abra una ventana de terminal de GIT. Cambie a la carpeta donde quiere clonar el proyecto de ejemplo.

  2. Ejecute el comando siguiente para clonar el repositorio de ejemplo. Este comando crea una copia de la aplicación de ejemplo en el equipo.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Configuración y ejecución de una aplicación web de salón de chat

  1. Inicie Visual Studio y abra la solución en la carpeta aspnet-samples/ChatRoom/ del repositorio clonado.

  2. En el explorador en el que se abre Azure Portal, busque y seleccione la instancia que creó.

  3. Seleccione Claves para ver las cadenas de conexión para la instancia del servicio SignalR.

  4. Seleccione y copie la cadena de conexión principal.

  5. Ahora, establezca la cadena de conexión del archivo web.config.

    <configuration>
    <connectionStrings>
        <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/>
    </connectionStrings>
    ...
    </configuration>
    
  6. En Startup.cs, en lugar de llamar a MapSignalR(), se debe llamar a MapAzureSignalR({YourApplicationName}) y pasar la cadena de conexión para que la aplicación se conecte al servicio en lugar de hospedar SignalR por sí mismo. Reemplace {YourApplicationName} en el nombre de la aplicación. Este nombre es un nombre único para distinguir esta aplicación de las otras aplicaciones. Puede usar this.GetType().FullName como valor.

    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        app.MapAzureSignalR(this.GetType().FullName);
    }
    

    También debe hacer referencia al SDK del servicio antes de usar estas API. Abra Herramientas | Administrador de paquetes NuGet | Consola del Administrador de paquetes y ejecute el comando:

    Install-Package Microsoft.Azure.SignalR.AspNet
    

    Aparte de estos cambios, todo lo demás permanece igual; todavía puede usar la interfaz de concentrador con la que está familiarizado para escribir la lógica de negocios.

    Nota

    En la implementación, se expone un punto de conexión /signalr/negotiate para la negociación mediante el SDK de Azure SignalR Service. Devolverá una respuesta de negociación especial cuando los clientes intenten conectarse y redirigir a los clientes al punto de conexión de servicio definido en la cadena de conexión.

  7. Presione F5 para ejecutar el proyecto en modo de depuración. Puede observar que la aplicación se ejecuta localmente. En lugar de que la propia aplicación hospede una instancia de SignalR en tiempo de ejecución, ahora se conecta a Azure SignalR Service.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Limpieza de recursos

Si no va a seguir usando esta aplicación, siga estos pasos para eliminar todos los recursos creados en esta guía de inicio rápido a fin de que no se le apliquen cargos adicionales:

  1. En Azure Portal, seleccione Grupos de recursos en el extremo izquierdo y luego seleccione el grupo de recursos que creó. Además, puede usar el cuadro de búsqueda para buscar el grupo de recursos por su nombre.

  2. En la ventana que se abrirá, seleccione el grupo de recursos y luego haga clic en Eliminar grupo de recursos.

  3. En la nueva ventana escriba el nombre del grupo de recursos que quiere eliminar y, después, haga clic en Eliminar.

Importante

La eliminación de un grupo de recursos es irreversible y el grupo de recursos y todos los recursos que contiene se eliminarán de forma permanente. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados. Si ha creado los recursos para hospedar este ejemplo dentro de un grupo de recursos existente que contiene recursos que desea mantener, puede eliminar cada recurso individualmente de sus hojas respectivas, en lugar de eliminar el grupo de recursos.

Inicie sesión en Azure Portal y haga clic en Grupos de recursos.

Escriba el nombre del grupo de recursos en el cuadro de texto Filtrar por nombre... . Las instrucciones de esta guía de inicio rápido usan un grupo de recursos llamado SignalRTestResources. En el grupo de recursos de la lista de resultados, haga clic en ... y, a continuación, en Eliminar grupo de recursos.

Eliminar

Transcurridos unos instantes, el grupo de recursos y todos los recursos que contiene se eliminan.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Pasos siguientes

En esta guía de inicio rápido, ha creado un recurso de Azure SignalR Service y lo ha usado con una aplicación web de ASP.NET. A continuación, obtenga información sobre cómo desarrollar aplicaciones en tiempo real mediante Azure SignalR Service con ASP.NET Core.