2016-07-29 47 views
1

我正在使用React.js和socket.io。 我的应用程序由多个容器组成。每个容器都有组件。在哪里初始化React容器中的Socket对象?

我的容器和组件层次

  • 仪表板
  • 聊天
    • ChatListItem
    • CustomerChatView

所以在这里仪表板和聊天将两个单独的容器定义在单独的js文件中。 我想在仪表板和聊天消息之间共享websocket对象,以便仪表板在聊天容器中有新的聊天消息时能够向用户显示警报消息。

我的问题是什么是最适合初始化websocket的地方,以便可以在两个容器中使用相同的套接字对象?

我使用socket.io JavaScript库

回答

1

我可能会创建一个根应用容器,它可以调度上componentWillMount动作初始化套接字并将结果存储在店里。然后,您可以将它传递给任何其他容器,并在必要时使用它。

+0

一想到我可能仍会初始化componentWillMount中的套接字,但我会将引用存储在单独的专用模块中,该模块可能只是暴露了API才能使用它。你的商店状态应该是可序列化的,并且在那里存储套接字可能不会。 – John