是否有明确的 SignalR 集线器版本控制策略,以便旧的 JS 代码可以继续工作?

Posted

技术标签:

【中文标题】是否有明确的 SignalR 集线器版本控制策略,以便旧的 JS 代码可以继续工作?【英文标题】:Is there a defined strategy for versioning SignalR hubs, so that old JS code can continue to work? 【发布时间】:2015-10-12 22:16:37 【问题描述】:

我希望能够更改现有 SignalR 集线器上的方法签名、名称等。是否有明确的 SignalR 集线器版本控制策略,以便旧的 JS 代码可以继续工作,而不必为新调用创建一个新命名的集线器?

【问题讨论】:

【参考方案1】:

我会说简短的回答是否定的。 Signalr 没有任何类似的版本控制策略。

这个问题对细节有一点启发,但例如,signalr 可以选择使用类的属性来定义集线器名称。您还可以通过从原始 Hub 派生来创建新的 Hub 类,以帮助您重用现有代码。无论您做什么,都需要编写新的客户端 js。

【讨论】:

【参考方案2】:

您不能更改方法名称并期望 javascript 能够理解您更改了它的名称。 至于方法签名 - Javascript 不是强类型编程语言,因此您可以将不同类型的变量传递给集线器(只要变量的数量保持不变)。

但是,如果您仍想支持旧方法,您可以创建新方法。

【讨论】:

应该有办法将版本号发送到服务器并路由到适当的集线器。

以上是关于是否有明确的 SignalR 集线器版本控制策略,以便旧的 JS 代码可以继续工作?的主要内容,如果未能解决你的问题,请参考以下文章

使用针对 signalR 端点的不同策略覆盖全局 CORS 策略

从 Web API 控制器调用 SignalR 集线器时出现问题

是否可以从 Postman 调用 SignalR Hub

来自控制器的 SignalR 调用

SignalR系列教程:在MVC在使用SignalR

带有 SignalR 集线器的 ASP.NET Core 中的范围服务