是否有明确的 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 策略