在你的 redux 应用程序中哪里有套接字对象? [关闭]
Posted
技术标签:
【中文标题】在你的 redux 应用程序中哪里有套接字对象? [关闭]【英文标题】:Where to have the socket object in your redux app? [closed] 【发布时间】:2019-02-20 00:56:39 【问题描述】:我正在使用 react、redux 和 socket.io 开发一个聊天应用程序。众所周知,redux 对于将某些状态传递给深层和嵌套组件非常有帮助。我喜欢这个想法,将一些 props 存储为 redux 状态,这些状态将传递给一些重度嵌套的组件。我正在使用socket.io-client 库来创建套接字对象。
我需要将创建的套接字对象传递给一些嵌套严重的组件,所以我正在考虑在 redux 状态下创建套接字对象,以便我可以在嵌套组件上轻松使用它。
这是一个好方法还是我应该做其他事情?
【问题讨论】:
【参考方案1】:不,不是。
我们最近添加了Redux FAQ entry on where websockets should live in a Redux app。引用该条目:
中间件是 Redux 应用程序中持续连接(如 websocket)的正确位置,原因如下:
中间件存在于应用程序的整个生命周期中 与商店本身一样,您可能只需要整个应用程序都可以使用的给定连接的单个实例 中间件可以看到所有已调度的动作和调度动作本身。这意味着中间件可以采取已调度的操作并将其转换为通过 websocket 发送的消息,并在通过 websocket 接收到消息时调度新的操作。 websocket 连接实例不可序列化,因此它本身不属于存储状态
【讨论】:
示例总是很有帮助的标记,例如this。谢谢!以上是关于在你的 redux 应用程序中哪里有套接字对象? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
React-Native + Redux + ImmutableJS内存泄漏