我有一个传统的Sails.JS项目,该项目目前在Sails版本0.10.5上。我想将项目升级到Sails 0.11.x及以后,但有一个问题。该项目充当本机移动应用程序的后端,因此与升级Web服务器不同,您可以将新的sails.io.js和socket.io客户端库链接到您的网站,我们不能依赖用户升级本机应用程序
我是唯一一个面对这个问题的人,这似乎是不合理的,所以我想向社区提出一个问题,看看是否有任何我没有想到的辉煌,以使升级无缝进行。 / p>
我想到的想法是:
使用子域名https://v2.domain.com/api/..运行两个版本的应用程序。)。这显然是最明显的解决方案,但需要大量的服务器配置才能实现,我们目前正在运行的PAAS上定制环境的能力有限,因此可能需要切换提供商。
除了参与此路线所涉及的工作外,还有决定如何处理代码库。您可以为两个风帆版本维护代码的两个分支,但这意味着修复错误两次和两次错误的可能性。或者您可以在代码中添加条款以检查它正在运行的风帆版本。这些都不是很干净,但我认为如果归结为这两种选择,我会选择其中的第二种。
挖掘sails.js核心代码,找到一种方法让socket.io 0.9和socket.io 1.0同时并行运行。这将允许我让所有用户在关闭0.9支持之前更新他们的移动应用程序。这也有明显的陷阱,但主要是在框架层面上进行如此全面的变革。
我喜欢深入了解其他人在这种情况下所做的事情,如果解决方案只是保持在Sails 0.10.5然后那很好,但我很想获得原生Socket.IO的附加好处。已经出现在v.1.0中的库,而不是我目前使用的半家用旋转解决方案。此外,继续获得安全性和功能更新将会很高兴。
答案 0 :(得分:0)
解决此问题的唯一可靠解决方案是设置以当前服务器为基础的nginx反向代理,然后在创建每个路径之前将另一个服务器/ v2路径作为前缀,然后将用户迁移到/ v2路径正如你所能,我建议对两台服务器使用相同的git repo,但要将它们保存在不同的分支上,这样如果碰巧需要,可以将新的更改合并到两者上。