相关疑难解决方法(0)

使用控制器的Hub方法?

我正在使用SignalR 2,我无法弄清楚如何使用我的Hub方法,例如在控制器动作中.

我知道我可以做到以下几点:

var hub = GlobalHost.ConnectionManager.GetHubContext<T>();
hub.Clients.All.clientSideMethod(param);
Run Code Online (Sandbox Code Playgroud)

但是直接在客户端执行该方法.

如果我的服务器端ClientSideMethod(param)方法中有业务逻辑,我想从我的控制器调用,就像从客户端调用它一样?

目前我public static void ClientSideMethod(param)在我的集线器中使用,在那个方法中我使用了IHubContext来自ConnectionManager.

这样做有没有更好的方法?

以下是行不通的(在SignalR 2中?):

var hubManager = new DefaultHubManager(GlobalHost.DependencyResolver);
instance = hubManager.ResolveHub(typeof(T).Name) as T;
instance.ClientSideMethod(param);
Run Code Online (Sandbox Code Playgroud)

在访问客户端时,我得到"不通过Hub管道创建的集线器不受支持"异常.

asp.net asp.net-mvc signalr signalr-hub

17
推荐指数
2
解决办法
1万
查看次数

Signal-R如何适应IIS激活模型?

我正在学习Signal-R,这是我一直在想的事情.

  • Signal-R如何适应IIS/ASP.NET生命周期?
  • 集线器存在多长时间(我看到它们有重新连接语义)?
  • IIS是否会阻止关闭具有持久连接的AppDomain?

据我所知,IIS旨在处理请求 - 响应方案.一个请求命中IIS,它找到AppDomain,激活它,然后将请求传递给它.在空闲时间之后,关闭AppDomain.如果请求过长,则抛出超时异常.

现在让我们假设我有另一个通过TCP套接字广播信息的应用程序.我希望我的javascript客户端能够实时获取该信息,因此我创建了一个Signal-R Web应用程序.我可以在应用程序启动时创建一个TCP客户端,但是什么能保证IIS在一段时间不活动后不会关闭整个事件?

我可以自己在一个窗口服务中托管Signal-R应用程序,但后来我将不得不使用不同的端口,启用跨域等...部署的许多问题.但是,我担心使用ASP.NET MVC应用程序,因为它看起来像是在摩托车中安装驱动轮.

干杯.

.net asp.net iis-7.5 signalr

7
推荐指数
1
解决办法
1746
查看次数

标签 统计

asp.net ×2

signalr ×2

.net ×1

asp.net-mvc ×1

iis-7.5 ×1

signalr-hub ×1