SignalR / Ajax方法调用

时间:2018-09-05 08:49:33

标签: c# asp.net ajax wpf signalr

我目前正在将现有解决方案迁移到SignalR(用于实时更新)。传统服务器端是ASP.NET MVC,现在是WPF应用程序自托管SignalR。我想使我的解决方案尽可能地向后兼容于客户端,但是所有现有的客户端代码都使用Ajax的“ post / get”语法来调用这样的服务器方法:

 $.ajax({
          url: 'api/Controller/Action',
          type: "POST",
          success: function (result) { ...   },
  });

是否可以通过任何方式从SignalR角度拦截这些方法调用,而无需添加集线器连接和/或更改客户端代码?

1 个答案:

答案 0 :(得分:0)

一些解决方法后,我找到了一个解决方案,所以如果要寻找相同类型的问题的解决方案,请在此处发布。

可以同时使用SignalR SelfHostWebApi SelfHost

在我的wpf应用程序的Startup.Cs类中,我只是将多余的HttpConfiguration放在SignalR之外。

    public void Configuration(IAppBuilder app)
    {
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        // SignalR configuration etc...

    }

然后,我创建了一个自ApiController派生的自定义类,并将其像标准MVC控制器一样使用。