将Sails Socket IO连接到在领事中运行的Sails服务器

时间:2016-09-08 18:58:24

标签: docker sails.js consul sails.io.js

这个μService架构作为后端运行,其中一个consul实例管理所有服务。有一个特定的服务器,A用Sails制作,还有一些相关的套接字逻辑,我想用另一个服务B使用sails.io。

每个服务都在自己的Docker容器中运行,但它们都连接到同一个网络。

因此,在开发时,我在本地运行A容器并使用节点脚本模拟服务B,逻辑显示为here。服务URL非常简单,因为我只是运行带有开放端口的容器,因此sails.io用于连接的URL是localhost:PORT。这里的一切都很好。

当服务A在μService架构中运行时,问题就出现了。每个服务都在自己的URL中运行,例如backend.com/api/SERVICE_NAME,就像命名空间一样,命名空间下的每个路由实际上都在点击SERVICE_NAME服务。所以现在sails.io因为路线的变化而连接到服务A,我认为有问题。

这是我在const io = sailsIOClient(socketIOClient);

给出的所有变体
io.sails.url = 'http://backend.com/api/SERVICE_NAME';

然后

io.sails.url = 'http://backend.com';
io.sails.path = '/api/SERVICE_NAME'

然后

io.sails.url = 'http://backend.com';
io.sails.path = '/api/SERVICE_NAME/socket.io/'

然后我偶然发现this引用了socket.io(here's the specific)的connect函数的path参数。我试过这个,将io.sails.autoConnect设置为false并调用io.sails.connect(),但我无法连接到Sails应用。

        Socket is trying to reconnect to Sails...
_-|>_-  (attempt #293)

我很确定问题是客户端io无法找到正确的路径来找到Sails应用程序,因为已经设置了架构。

是否有人处理过类似的情况?建议非常感谢。

0 个答案:

没有答案
相关问题