【问题标题】:Upgrade Path from Sails.JS 0.10 to 0.11 Maintaining Backwards Compatibility从 Sails.JS 0.10 到 0.11 的升级路径保持向后兼容性
【发布时间】:2016-02-20 12:15:39
【问题描述】:

我有一个旧版 Sails.JS 项目,目前使用的是 Sails 版本 0.10.5。我想将项目升级到 Sails 0.11.x 及更高版本,但有一个问题。该项目作为原生移动应用程序的后端,因此与升级 Web 服务器不同,您只需将新的sails.io.js 和 socket.io 客户端库链接到您的网站,我们不能依赖用户来升级原生应用程序.

我是唯一一个遇到这个问题的人似乎不合理,所以我想向社区提出这个问题,看看是否有什么我没有想到的出色之处可以使升级无缝进行。

我想到的想法是:

  1. 使用子域 (https://v2.domain.com/api/...) 运行应用程序的两个版本。这显然是最明显的解决方案,但需要相当多的服务器配置才能完成,而且我们目前正在运行在定制环境能力有限的 PAAS 上,因此这可能需要切换提供程序。

    除了采用这条路线所涉及的工作之外,还需要决定如何处理代码库。您可以为两个sails 版本维护两个代码分支,但这意味着修复错误两次和两倍的错误可能性。或者您可以在代码中添加规定以检查它在哪个版本的风帆下运行。这些看起来都不是很干净,但如果归根结底,我想我会选择这两个选项中的第二个。

  2. 挖掘sails.js核心代码,想办法让socket.io 0.9和socket.io 1.0同时并行运行。这将允许我让所有用户在关闭 0.9 支持之前更新他们的移动应用程序。不过,这也有明显的缺陷,其中主要是在框架级别执行如此全面的更改。

我很想了解其他人在这种情况下所做的事情,如果解决方案是继续使用 Sails 0.10.5,那很好,但我很想获得原生 Socket.IO 的额外好处为 v.1.0 推出的库,而不是我目前使用的半家用纺解决方案。此外,如果能继续获得安全和功能更新,那就太好了。

【问题讨论】:

  • 我们面临同样的问题 - 我们有数百个客户端应用程序使用旧的 socket.io 客户端(打包在应用程序中)。我们必须为每个客户端运行 2 组服务器——旧的 0.10 和新的 Sails 0.12。只是想知道你们是否实施了解决方案,以及你们的效果如何?
  • 我从来没有在这方面找到任何东西,我们最终短暂地运行了两台服务器。这非常令人沮丧,但这是进行过渡的唯一可靠方法。抱歉,我无法提供更多帮助。

标签: node.js socket.io sails.js


【解决方案1】:

解决此问题的唯一可靠解决方案是设置一个 nginx 反向代理,该代理以您当前的服务器为基础,然后在创建每个路径之前有另一个带有 /v2 路径前缀的服务器,然后将用户迁移到 /v2 路径尽你所能,我建议对两台服务器使用相同的 git 存储库,但在不同的分支上维护它们,以便在需要时可以将新的更改合并到两者上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    相关资源
    最近更新 更多