我通过公共IP地址识别连接。我的理解直到最近(怀疑它)是在这种情况下,客户订阅频道会重用相同的频道实例。
现实世界的例子如下:
我正在构建一个应用程序,该应用程序请求来自某个非我拥有的来源的信息。这是通过HTTP请求和作业完成的。外部资源以周期性的时间间隔发生变化。
我的DataChannel类继承自ApplicationCable :: Channel,管理上一个请求的缓存,因此从同一IP地址订阅的新客户端不会启动新请求,而是重用最后一个请求。
总结:
如果我打开两个标签并且每个标签订阅一个频道,即使连接标识符相同,我也会获得两个频道实例吗?
我没有寻求这样做的方法,只是指出我正确的方向就足够了,实际上更有价值。
答案 0 :(得分:0)
不,他们不是。
我需要在客户端拥有的所有实例之间添加一些同步,并使用IP地址标识连接。
为此,我使用了Redis DLM,因此我可以获取并释放锁,从而执行旨在独特的计算。
可能有更好的方法,但我无法想象一个不需要修补ActionCable来源的方法。任何进一步的评论都会一如既往地受到赞赏。