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.
ASP.NET Core SignalR é uma biblioteca de software livre que simplifica a adição de funcionalidades da Web em tempo real aos aplicativos. A funcionalidade da Web em tempo real permite que o código do lado do servidor envie conteúdo aos clientes instantaneamente. Há muitos cenários em que um aplicativo ASP.NET Core pode se beneficiar de SignalR:
| Scenario | Exemplos |
|---|---|
| Aplicativos que exigem atualizações de alta frequência do servidor | Jogos, redes sociais, sites de votação, leilões, mapas, GPS |
| Painéis e aplicativos para monitoramento | Painéis da empresa, atualizações de vendas instantâneas, alertas de viagem |
| Aplicativos que dão suporte à colaboração | Aplicativos whiteboard, software de reunião de equipe |
| Aplicativos que exigem notificações | Redes sociais, Email, Chat, Jogos, Alertas de viagem |
Este artigo fornece uma introdução ao trabalho com SignalR em seus aplicativos ASP.NET Core.
Recursos e código-fonte
SignalR fornece uma API para criar chamadas de procedimento remoto (RPC) de servidor para cliente. As chamadas de procedimento remoto (RPCs) invocam funções nos clientes a partir do código .NET do lado do servidor. Há várias plataformas compatíveis, cada uma com seu respectivo SDK de cliente. A linguagem de programação invocada pela chamada RPC varia de acordo com a plataforma.
SignalR para ASP.NET Core fornece aos desenvolvedores muitos recursos:
- Gerenciar conexões automaticamente
- Enviar mensagens para todos os clientes conectados simultaneamente (por exemplo, uma sala de chat)
- Enviar mensagens para clientes ou grupos específicos de clientes
- Dimensione para lidar com o aumento do tráfego com opções como o Azure SignalR Service e o backplane Redis
- Suporte à redução e à compilação nativa antecipada (AOT) para cenários compatíveis
- Suporte ao tratamento de tipos polimórficos em métodos de hub
- Suporte ao rastreamento distribuído com
ActivitySourcepara SignalR hub server e .NET cliente - Trabalhe com o SignalR Hub Protocol
A origem é hospedada no repositório ASP.NET Core SignalR em GitHub.
Transports
SignalR aceita as seguintes técnicas para lidar com comunicação em tempo real (em ordem de fallback):
- WebSockets
- Eventos enviados pelo servidor
- Sondagem longa
SignalR escolhe automaticamente o melhor método de transporte dentro dos recursos do servidor e do cliente. WebSockets é o transporte preferencial porque geralmente fornece o melhor desempenho.
Hubs
SignalR usa hubs para se comunicar entre clientes e servidores.
Um hub é um pipeline de alto nível que um cliente e um servidor usam para chamar métodos um no outro. SignalR lida automaticamente com o despacho entre limites de máquina, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros fortemente tipados para métodos e habilitar a vinculação de modelo.
SignalR dá suporte a dois protocolos de hub internos:
- Um protocolo de texto baseado em JSON (padrão)
- Um protocolo binário baseado em MessagePack. O MessagePack geralmente cria mensagens menores em comparação com o JSON. Para obter mais informações, consulte Uso do Protocolo de Hub MessagePack em SignalR para ASP.NET Core.
Os hubs chamam o código cliente enviando mensagens que contêm o nome e os parâmetros do método cliente. O protocolo configurado desserializa objetos enviados como parâmetros de método. O cliente tenta encontrar uma correspondência entre o nome e um método no código cliente. Quando o cliente encontra uma correspondência, ele chama o método e passa os dados do parâmetro desserializados.
Conteúdo relacionado
- Introdução ao ASP.NET CoreSignalR
- Plataformas com suporte SignalR do ASP.NET Core
- Usar hubs no ASP.NET Core SignalR
- Registro e diagnósticos em ASP.NET Core SignalR
- Hospedagem e dimensionamento de produção do ASP.NET CoreSignalR
Cliente JavaScript do ASP.NET Core - Diretrizes do ASP.NET Core BlazorSignalR
O que é SignalR?
ASP.NET Core SignalR é uma biblioteca de software livre que simplifica a adição de funcionalidades da Web em tempo real aos aplicativos. A funcionalidade da Web em tempo real permite que o código do lado do servidor envie conteúdo aos clientes instantaneamente.
Bons candidatos para SignalR:
- Aplicativos que exigem atualizações frequentes do servidor. Por exemplo, jogos, redes sociais, votação, leilão, mapas e aplicativos de GPS.
- Painéis e aplicativos de monitoramento. Por exemplo, painéis de empresa, atualizações de vendas instantâneas ou alertas de viagem.
- Aplicativos colaborativos. Aplicativos de quadro branco e software para reuniões de equipe são exemplos de aplicativos de colaboração.
- Aplicativos que exigem notificações. Redes sociais, email, chat, jogos, alertas de viagem e muitos outros aplicativos usam notificações.
SignalR fornece uma API para criar chamadas de procedimento remoto (RPC) de servidor para cliente. As chamadas de procedimento remoto (RPCs) invocam funções nos clientes a partir do código .NET do lado do servidor. Há várias plataformas compatíveis, cada uma com seu respectivo SDK de cliente. Por isso, a linguagem de programação que está sendo invocada pela chamada RPC varia.
Aqui estão alguns recursos de SignalR para ASP.NET Core:
- Trata do gerenciamento de conexões automaticamente.
- Envia mensagens para todos os clientes conectados simultaneamente. Por exemplo, uma sala de chat.
- Envia mensagens para clientes ou grupos de clientes específicos.
- Escalável para lidar com o aumento do tráfego com opções como o Serviço SignalR do Azure e backplane do Redis.
- Suporta truncamento e compilação nativa antecipada (AOT) para cenários suportados.
- Dá suporte ao tratamento de tipo polimórfico em métodos de hub.
- Dá suporte ao rastreamento distribuído com
ActivitySourcepara servidor hub e cliente .NET. - Protocolo de Hub SignalR
A origem é hospedada em um repositório SignalR em GitHub.
Transports
SignalR aceita as seguintes técnicas para lidar com comunicação em tempo real (em ordem de fallback):
- WebSockets
- Eventos enviados pelo servidor
- Sondagem longa
SignalR escolhe automaticamente o melhor método de transporte que está dentro dos recursos do servidor e do cliente. WebSockets é o transporte preferencial porque geralmente fornece o melhor desempenho.
Hubs
SignalR usa hubs para se comunicar entre clientes e servidores.
Um hub é um pipeline de alto nível que permite que um cliente e um servidor executem métodos entre si. SignalR lida automaticamente com o despacho entre limites de máquina, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros fortemente tipados para os métodos, o que permite o model binding. SignalR dá suporte a dois protocolos de hub internos: um protocolo de texto baseado em JSON (padrão) e um protocolo binário baseado em MessagePack. O MessagePack geralmente cria mensagens menores em comparação com o JSON. Para obter mais informações, consulte Uso do Protocolo de Hub MessagePack em SignalR para ASP.NET Core.
Os hubs chamam o código cliente enviando mensagens que contêm o nome e os parâmetros do método cliente. Os objetos enviados como parâmetros de método são desserializados usando o protocolo configurado. O cliente tenta encontrar uma correspondência entre o nome e um método no código cliente. Quando o programa cliente encontra uma correspondência, ele chama o método e passa para ele os dados deserializados dos parâmetros.
Recursos adicionais
O que é SignalR?
ASP.NET Core SignalR é uma biblioteca de software livre que simplifica a adição de funcionalidades da Web em tempo real aos aplicativos. A funcionalidade da Web em tempo real permite que o código do lado do servidor envie conteúdo aos clientes instantaneamente.
Bons candidatos para SignalR:
- Aplicativos que exigem atualizações frequentes do servidor. Por exemplo, jogos, redes sociais, votação, leilão, mapas e aplicativos de GPS.
- Painéis e aplicativos de monitoramento. Por exemplo, painéis de empresa, atualizações de vendas instantâneas ou alertas de viagem.
- Aplicativos colaborativos. Aplicativos de quadro branco e software para reuniões de equipe são exemplos de aplicativos de colaboração.
- Aplicativos que exigem notificações. Redes sociais, email, chat, jogos, alertas de viagem e muitos outros aplicativos usam notificações.
SignalR fornece uma API para criar chamadas de procedimento remoto (RPC) de servidor para cliente. As chamadas de procedimento remoto (RPCs) invocam funções nos clientes a partir do código .NET do lado do servidor. Há várias plataformas compatíveis, cada uma com seu respectivo SDK de cliente. Por isso, a linguagem de programação que está sendo invocada pela chamada RPC varia.
Aqui estão alguns recursos de SignalR para ASP.NET Core:
- Trata do gerenciamento de conexões automaticamente.
- Envia mensagens para todos os clientes conectados simultaneamente. Por exemplo, uma sala de chat.
- Envia mensagens para clientes ou grupos de clientes específicos.
- Escala para lidar com o aumento do tráfego.
- Protocolo de Hub SignalR
A origem é hospedada em um repositório SignalR em GitHub.
Transports
SignalR aceita as seguintes técnicas para lidar com comunicação em tempo real (em ordem de fallback):
- WebSockets
- Eventos enviados pelo servidor
- Sondagem longa
SignalR escolhe automaticamente o melhor método de transporte que está dentro dos recursos do servidor e do cliente.
Hubs
SignalR usa hubs para se comunicar entre clientes e servidores.
Um hub é um pipeline de alto nível que permite que um cliente e um servidor executem métodos entre si. SignalR lida automaticamente com o despacho entre limites de máquina, permitindo que os clientes chamem métodos no servidor e vice-versa. Você pode passar parâmetros fortemente tipados para os métodos, o que permite o model binding. SignalR fornece dois protocolos de hub integrados: um protocolo de texto baseado em JSON e um protocolo binário baseado em MessagePack. O MessagePack geralmente cria mensagens menores em comparação com o JSON. Os navegadores mais antigos devem dar suporte ao XHR nível 2 para oferecer suporte ao protocolo MessagePack.
Os hubs chamam o código cliente enviando mensagens que contêm o nome e os parâmetros do método cliente. Os objetos enviados como parâmetros de método são desserializados usando o protocolo configurado. O cliente tenta encontrar uma correspondência entre o nome e um método no código cliente. Quando o programa cliente encontra uma correspondência, ele chama o método e passa para ele os dados deserializados dos parâmetros.
Navegadores incompatíveis com ECMAScript 6 (ES6)
SignalR tem como destino o ES6. Para navegadores que não são compatíveis com o ES6, transpile a biblioteca para o ES5. Para obter mais informações, consulte Introdução ao ES6 - Transposição de ES6 para ES5 com Traceur e Babel.