utilizzando NCache Estensione per SignalR Core
NCache estende l' ISignalRServerBuilder metodo con il suo AddNCache
metodo che richiede solo il nome della cache e la chiave evento per l'elemento aggiunto. Se la sicurezza della cache è abilitata, sono richieste anche le credenziali dell'utente. Questo funge da punto di registrazione per i client contro l'ASP.NET Core Implementazione di SignalR.
Note:
Questa funzionalità è disponibile anche in NCache Professional.
AddNCache
accetta i seguenti parametri:
parametri | Tipologia | Descrizione |
---|---|---|
CacheName |
string |
Nome della cache in NCache che memorizzerà il rispettivo articolo per consentire al cliente di tracciare gli aggiornamenti tramite itemVersion . |
EventKey |
string |
Attributo chiave univoco specificato dall'utente per l'elemento aggiunto NCache sulla registrazione del cliente. La chiave evento è specifica dell'applicazione. Ogni client dell'applicazione utilizzerà la stessa chiave evento durante la chiamata NCachemetodo di estensione di. |
ConnectionOptions |
connection options |
ConnectionOptions L'oggetto permette di impostare le proprietà da utilizzare al momento della connessione del client con la cache. Per una descrizione dettagliata dei parametri forniti nel ConnectionOptions oggetto, fare riferimento Opzioni di connessione cache Proprietà. |
Prerequisiti per l'utilizzo NCache Estensione per SignalR Core
- Installa i pacchetti NuGet seguenti nell'applicazione in base al tuo NCache Versione:
- Enterprise: AspNet.SignalR.NCache
- Saloni professionali: AspNet.SignalR.NCache.Professionale
- Fonte aperta: AspNet.SignalR.NCache.Open Source
- Per utilizzare l'estensione, includi i seguenti spazi dei nomi nella tua applicazione in Avvio.cs:
- Alachisoft.NCache.AspNet.SignalR
Microsoft.AspNet.SignalR
- La cache deve essere in esecuzione.
- Assicurati di utilizzare la versione 1.1.0 di ASP.NET SignalR Nucleo.
- Per i dettagli dell'API, fare riferimento a: AggiungiNCache.
- Assicurati che i dati aggiunti lo siano serializzabile.
- Per garantire che l'operazione sia a prova di errore, si consiglia di gestire eventuali potenziali eccezioni all'interno dell'applicazione, come spiegato in Gestione dei guasti.
- Per gestire eventuali eccezioni invisibili, fare riferimento a Troubleshooting .
modificare AppSettings.json
Aggiungi le seguenti configurazioni nel tuo appsettings.json file. In particolare, puoi fornire a ConnectionOptions
oggetto per impostare diverse proprietà da utilizzare al momento della connessione del client con la cache. Se non si trova alcuna proprietà all'interno del ConnectionOptions
oggetto o al livello radice di NCacheConfiguration
, viene utilizzato il suo valore predefinito da client.ncconf. Per una descrizione dettagliata dei parametri forniti nel ConnectionOptions
oggetto, fare riferimento Opzioni di connessione cache Proprietà.
"NCacheConfiguration": {
"CacheName": "demoCache",
"EventKey": "chatApplication",
"ConnectionOptions": {
"ClientBindIP": "",
"AppName": "DemoAppName",
"LogLevel": "info",
"UserCredentials": {
"UserID": "john doe",
"Password": "1234"
},
"ServerList": [
{
"Name": "20.200.20.40", "Port": 9800
}
]
}
}
Registra i clienti da utilizzare NCache
Registra un'istanza di AddNCache
metodo in Avvio.cs dell'applicazione utilizzando uno dei seguenti overload in base alle proprie esigenze.
Sovraccarico 1:
public static ISignalRServerBuilder AddNCache(this ISignalRServerBuilder signalRBuilder, string cacheName, string eventKey);
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
string cache, eventKey, userId, password;
cache = Configuration["NCacheConfiguration:CacheName"];
eventKey = Configuration["NCacheConfiguration:EventKey"];
services.AddSignalR().AddNCache(cache, eventKey);
}
}
Sovraccarico 2:
public static ISignalRServerBuilder AddNCache(this ISignalRServerBuilder signalRBuilder, string cacheName, string eventKey, string userId, string password);
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
string cache, eventKey, userId, password;
cache = Configuration["NCacheConfiguration:CacheName"];
eventKey = Configuration["NCacheConfiguration:EventKey"];
// In case cache security is enabled, specify the security credentials
userId = Configuration["NCacheConfiguration:ConnectionOptions:UserCredentials:UserId"];
password = Configuration["NCacheConfiguration:ConnectionOptions:UserCredentials:Password"];
services.AddSignalR().AddNCache(cache, eventKey, userId, password);
}
}
Sovraccarico 3:
public static ISignalRServerBuilder AddNCache(this ISignalRServerBuilder signalrBuilder, Action<NCacheConfiguration> configure);
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.Configure<NCacheConfiguration>(Configuration.GetSection("NCacheConfiguration"));
services.AddSignalR().AddNCache(ncacheOptions =>
{
ncacheOptions.CacheName = Configuration["NCacheConfiguration:CacheName"];
ncacheOptions.EventKey = Configuration["NCacheConfiguration:EventKey"];
});
}
}
Configura metodo
Ecco come implementare il metodo configure per diversi overload.
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.UseSignalR(config =>
{
config.MapHub<MessageHub>("/messages");
});
app.UseMvc();
}
Risorse addizionali
NCache fornisce un'applicazione di esempio per SignalR attiva GitHub.
Vedere anche
.NETTO: Alachisoft.NCache.AspNet.SignalR spazio dei nomi.