SignalR / Ajax方法调用

问题描述 投票:0回答:1

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

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

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

c# asp.net ajax wpf signalr
1个回答
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控制器。

© www.soinside.com 2019 - 2024. All rights reserved.