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 reimplementado ASP.NET protocolo de datos signalR basado en las tecnologías más recientes de ASP.NET Core. Cuando se usa Azure SignalR Service para ASP.NET SignalR, algunas características de ASP.NET SignalR ya no se admiten, por ejemplo, Azure SignalR no reproduce mensajes cuando el cliente se vuelve a conectar. Además, no se admiten el transporte forever Frame ni JSONP. 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 este inicio rápido, aprenderá a empezar a trabajar con la 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.

Requisitos previos

¿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.

En esta sección, creará una instancia básica de Azure SignalR que se usará para la aplicación. En los pasos siguientes se usa Azure Portal para crear una instancia, pero también puede usar la CLI de Azure. Para obtener más información, vea el comando az signalr create en la referencia de la CLI de Azure SignalR Service.

  1. Inicie sesión en Azure Portal.
  2. En la parte superior izquierda de la página, seleccione + Crear un recurso.
  3. En la página Crear un recurso, en el cuadro de texto Search services and marketplace (Servicios de búsqueda y Marketplace), escriba signalr y, después, seleccione SignalR Service en la lista.
  4. En la página SignalR Service, seleccione Crear.
  5. En la pestaña Aspectos básicos, escriba la información esencial para la nueva instancia de SignalR Service. Escriba los siguientes valores:
Campo Valor sugerido Descripción
Suscripción Elija una suscripción Seleccione la suscripción que quiere usar para crear una instancia de SignalR Service.
Grupos de recursos Cree un grupo de recursos denominado SignalRTestResources Seleccione o cree un grupo de recursos para el recurso SignalR. Es útil crear un grupo de recursos para este tutorial en lugar de usar un grupo de recursos existente. Para liberar recursos después de completar el tutorial, elimine el grupo de recursos.

Al eliminar un grupo de recursos también se eliminarán todos los recursos que pertenezcan a él. Esta acción no se puede deshacer. Antes de eliminar un grupo de recursos, asegúrese de que no incluye los recursos que quiere conservar.

Para obtener más información, consulte Uso de grupos de recursos para administrar los recursos de Azure.
Nombre del recurso testsignalr Escriba un nombre de recurso único para usarlo en el recurso SignalR. Si testsignalr ya se ha usado en la región, agregue un dígito o carácter hasta que el nombre sea único.

El nombre debe ser una cadena de entre 1 y 63 caracteres y solo puede contener números, letras y el carácter de guion (-). El nombre no puede empezar ni terminar con el carácter de guion y no se pueden usar varios guiones consecutivos.
Región Elija la región. Seleccione la región adecuada para la nueva instancia de SignalR Service.

Azure SignalR Service no está disponible actualmente en todas las regiones. Para obtener más información, vea Disponibilidad en regiones para Azure SignalR Service.
Plan de tarifa Seleccione Cambiar y luego elija Free (Dev/Test Only) (Gratis (solo desarrollo/pruebas)). Elija Seleccionar para confirmar el plan de tarifa que elija. Azure SignalR Service tiene tres planes de tarifa: Gratis, Estándar y Premium. Los tutoriales usan el nivel Gratis, a menos que se indique lo contrario en los requisitos previos.

Para obtener más información sobre las diferencias de función entre los niveles y los precios, vea Precios de Azure SignalR Service.
Modo de servicio Elección del modo de servicio adecuado Utilice Predeterminado cuando aloje la lógica del concentrador SignalR en sus aplicaciones web y utilice el servicio SignalR como proxy. Use Sin servidor cuando use tecnologías sin servidor, como Azure Functions, para hospedar la lógica del centro de SignalR.

El modo Clásico solo es para la compatibilidad con versiones anteriores y no se recomienda su uso.

Para obtener más información, vea Modo de servicio en Azure SignalR Service.

No es necesario cambiar la configuración en las pestañas Redes y Etiquetas de los tutoriales de SignalR.

  1. Seleccione el botón Revisar y crear de la parte inferior de la pestaña Aspectos básicos.
  2. En la pestaña Revisar y crear, revise los valores y luego seleccione Crear. La implementación tarda unos minutos en completarse.
  3. Cuando se complete la implementación, seleccione el botón Ir al grupo de recursos.
  4. En la página de recursos de SignalR, seleccione Claves en el menú de la izquierda, en Configuración.
  5. Copie la cadena de conexión de la clave principal. Necesitará esta cadena de conexión para configurar su aplicación más adelante en este tutorial.

No se admite el modo sin servidor para ASP.NET aplicaciones de 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 después seleccione 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.

Delete

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.