Extension pour ASP.NET SignalR Backplane
NCache s'étend à l' IDependencyResolver interface avec son UseNCache
méthode qui nécessite uniquement le nom du cache et la clé d’événement pour l’élément ajouté. Cela sert de point d'enregistrement pour les clients contre l'implémentation de SignalR.
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
UseNCache
prend en compte les paramètres suivants :
Paramètres | Type | Description |
---|---|---|
cacheName |
string |
Nom du cache dans NCache qui stockera l'élément respectif pour que le client puisse tracer les mises à jour via itemVersion . |
eventKey |
string |
Attribut de clé unique spécifié par l'utilisateur pour l'élément ajouté à NCache lors de l'inscription du client. La clé d'événement est spécifique à l'application. Chaque client de l'application utilisera la même clé d'événement lors de l'appel NCachela méthode d'extension de. |
configuration |
NCacheScaleoutConfiguration |
Un objet de NCacheScaleoutConfiguration qui prolonge le ScaleoutConfiguration classe et prend en cacheName , eventKey , userid et une password comme membres. |
Prérequis pour NCache Extension pour ASP.NET SignalR Backplane
- Installez les packages NuGet suivants dans votre application en fonction de votre NCache Version:
- Enterprise: AspNet.SignalR.NCache
- Professionnel: AspNet.SignalR.NCache.Professionnel
- Open source: AspNet.SignalR.NCache.Open source
- Pour utiliser l'extension, incluez les espaces de noms suivants dans votre application dans Démarrage.cs:
- Alachisoft.NCache.AspNet.SignalR
Microsoft.AspNet.SignalR
- Le cache doit être en cours d'exécution.
- Assurez-vous d'utiliser la version >= 2.4.0 de ASP.NET SignalR.
- Pour plus de détails sur l'API, reportez-vous à : UtilisezNCache.
- Assurez-vous que les données ajoutées sont sérialisable.
- Pour s'assurer que l'opération est sécurisée, il est recommandé de gérer toutes les exceptions potentielles dans votre application, comme expliqué dans Gestion des échecs.
- Pour gérer les exceptions invisibles, reportez-vous au Dépannage .
Modifier Web.config
Ajoutez le ConnectionOptions
section <configSections>
comme suit.
<configuration>
<configSections>
<section name="ConnectionOptions"
type="Alachisoft.NCache.AspNet.SignalR.SignalRConnectionOptions"/>
</configSections>
</configuration>
Ajoutez le ConnectionOptions
section <configuration>
pour définir différentes propriétés à utiliser au moment de la connexion du client avec le cache. Pour une description détaillée des paramètres fournis dans le ConnectionOptions
objet, reportez-vous à Propriétés CacheConnectionOptionsCacheConnectionOptions Properties.
<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>
Ajouter appSettings
section spécifiant cacheName
et les eventKey
in <configuration>
comme suit.
<appSettings>
<add key="cache" value="demoCache" />
<add key="eventKey" value="chatApplication" />
</appSettings>
Enregistrer les clients à utiliser NCache
Enregistrez une instance de UseNCache
méthode en Démarrage.cs de votre application dans l'une des surcharges suivantes :
Surcharge 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();
}
}
Surcharge 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();
}
}
Ressources additionnelles
NCache fournit un exemple d'application pour SignalR sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.AspNet.SignalR espace de noms.