Extensão para ASP.NET SignalR Backplane
NCache estende-se a IDependencyResolver interface com seu UseNCache
método que requer apenas o nome do cache e a chave do evento para o item adicionado. Isso atua como ponto de registro para os clientes na implementação do SignalR.
Note
Este recurso também está disponível em NCache Professional.
UseNCache
recebe os seguintes parâmetros:
parâmetros | Formato | Descrição |
---|---|---|
cacheName |
string |
Nome do cache em NCache que armazenará o respectivo item para o cliente rastrear atualizações via itemVersion . |
eventKey |
string |
Atributo chave exclusivo especificado pelo usuário para o item adicionado ao NCache no cadastro do cliente. A chave do evento é específica do aplicativo. Cada cliente do aplicativo usará a mesma chave de evento ao chamar NCachemétodo de extensão de. |
configuration |
NCacheScaleoutConfiguration |
Um objeto de NCacheScaleoutConfiguration que estende a ScaleoutConfiguration aula e leva em cacheName , eventKey , userid e password como membros. |
Pré-requisitos para NCache Extensão para ASP.NET SignalR Backplane
- Instale os seguintes pacotes NuGet em seu aplicativo com base em seu NCache versão:
- Empresa: AspNet.SignalR.NCache
- Profissional: AspNet.SignalR.NCache.Profissional
- Código aberto: AspNet.SignalR.NCache.Código aberto
- Para utilizar a extensão, inclua os seguintes namespaces em seu aplicativo em Inicialização.cs:
- Alachisoft.NCache.AspNet.SignalR
Microsoft.AspNet.SignalR
- O cache deve estar em execução.
- Certifique-se de usar a versão >= 2.4.0 do ASP.NET SignalR.
- Para obter detalhes da API, consulte: UseNCache.
- Certifique-se de que os dados adicionados sejam serializável.
- Para garantir que a operação seja à prova de falhas, é recomendável lidar com possíveis exceções em seu aplicativo, conforme explicado em Como lidar com falhas.
- Para lidar com quaisquer exceções não vistas, consulte o guia de solução de problemas seção.
Modificar Web.config
Adicionar o ConnectionOptions
seção em <configSections>
do seguinte modo.
<configuration>
<configSections>
<section name="ConnectionOptions"
type="Alachisoft.NCache.AspNet.SignalR.SignalRConnectionOptions"/>
</configSections>
</configuration>
Adicionar o ConnectionOptions
seção em <configuration>
para definir diferentes propriedades a serem utilizadas no momento da conexão do cliente com o cache. Para obter uma descrição detalhada dos parâmetros fornecidos no ConnectionOptions
objeto, consulte Propriedades de CacheConnectionOptions.
<configuration>
<ConnectionOptions ClientBindIp="" AppName="DemoAppName" EnableClientLogs="false" LogLevel="info">
<Server name="20.200.21.39" port="9800"/>
<UserCredentials userID="john doe" password="1234" />
</ConnectionOptions>
</configuration>
Adicionar appSettings
seção especificando cacheName
e eventKey
in <configuration>
do seguinte modo.
<appSettings>
<add key="cache" value="demoCache" />
<add key="eventKey" value="chatApplication" />
</appSettings>
Registrar clientes para usar NCache
Registre uma instância do UseNCache
método em Inicialização.cs do seu aplicativo em uma das seguintes sobrecargas:
Sobrecarga 1:
public static IDependencyResolver UseNCache(this IDependencyResolver resolver, string cacheName, string eventKey, string userID = null, string password = null)
public class Startup
{
public void Configuration(IAppBuilder app)
{
string cache, eventKey;
cache = ConfigurationManager.AppSettings["cache"];
eventKey = ConfigurationManager.AppSettings["eventKey"];
GlobalHost.DependencyResolver.UseNCache(cache, eventKey);
//using NCache SignalR
app.MapSignalR();
}
}
Sobrecarga 2:
public static IDependencyResolver UseNCache(this IDependencyResolver resolver, NCacheScaleoutConfiguration configuration)
public class Startup
{
public void Configuration(IAppBuilder app)
{
string cache, eventKey, userId ="", password="";
cache = ConfigurationManager.AppSettings["cache"];
eventKey = ConfigurationManager.AppSettings["eventKey"];
var options = (CacheConnectionOptions)ConfigurationManager.GetSection("ConnectionOptions");
if (options!= null && options.UserCredentials != null)
{
userId = options.UserCredentials.UserID;
password = options.UserCredentials.Password;
}
var configuration = new NCacheScaleoutConfiguration(cache, eventKey, userId, password);
GlobalHost.DependencyResolver.UseNCache(configuration); //using NCache SignalR
app.MapSignalR();
}
}
Recursos adicionais
NCache fornece aplicativo de amostra para SignalR em GitHub.
Veja também
.INTERNET: Alachisoft.NCache.AspNet.SignalR espaço para nome.