I have the following situation: I have a SignalR application in which I use Autofac as a dependency converter.
public class Startup
{
public void Configuration(IAppBuilder app)
{
var container = new AutofacContainer().Container;
var resolver = new AutofacDependencyResolver(container);
resolver.UseRedis("serverIp", portNumber, "password", "channelName");
app.UseAutofacMiddleware(container);
app.MapSignalR(new HubConfiguration
{
Resolver = resolver
});
resolver.UseRedis("192.168.122.213", 6300, "", "FLEDGG");
AddSignalRInjection(container, resolver);
}
private void AddSignalRInjection(IContainer container,IDependencyResolver resolver)
{
var updater = new ContainerBuilder();
updater.RegisterInstance(resolver.Resolve<IConnectionManager>());
updater.Update(container);
}
}
And this is the class AutofacContainer.
public class AutofacContainer
{
public IContainer Container { get; set; }
public AutofacContainer()
{
var builder = new ContainerBuilder();
builder.RegisterHubs(Assembly.GetExecutingAssembly())
.PropertiesAutowired();
builder.RegisterType<Test>()
.As<ITest>()
.PropertiesAutowired();
Container = builder.Build();
}
}
Now the official documentation SignalR Redis from Microsoft indicates that I should point GlobalHost.DependencyResolverto UseRedis.
public void Configuration(IAppBuilder app)
{
GlobalHost.DependencyResolver.UseRedis("server", port, "password", "AppName");
app.MapSignalR();
}
Since I no longer use GlobalHostthe application (even if I use GlobalHost, there is absolutely no behavior in Redis) ( as Automatic integration with SignalR and Owin points to ):
A common mistake in OWIN integration is the use of GlobalHost. In OWIN, you create a configuration from scratch. You should not reference GlobalHost wherever OWIN integration is used.
Startup :
var resolver = new AutofacDependencyResolver(container);
resolver.UseRedis("serverIp", portNumber, "password", "channelName");
resolver AutofacDependencyResolver Redis PubSub. , , .
( Chrome , ).
, : SignalR Redis scaleout Autofac ( : , ).
!
EDIT: , :
resolver.UseRedis("serverIp", portNumber, "password", "channelName");
!
EDIT: , : resolver.UseRedis();, , ( ), - , " " Redis, subscribe "channelName", , : .
, , SignalR Autofac , Redis, , , Autofac, .
!
UPDATE: -, SignalR Autofac. Autofac.