需要有关redux和服务器端更新的建议

时间:2016-05-21 02:25:50

标签: javascript reactjs redux react-redux

我正在构建一个从外部来源接收更新的应用。 (假设更新是股票报价,偶尔出现,每10-60秒。)

每个客户页面可能会显示有趣股票的完整列表,或者关注单个股票。当服务器接收该页面上显示的股票的新数据时,任何页面上的组件都应该更新。

我的问题:

  1. reactreactreact-redux模块是否可以处理服务器端更新与开箱即用的浏览器中的客户端组件之间的通信? (显然我将不得不编写actions / reducers / etc。)或者我是否还需要编写将这些更新从服务器传递给客户端的代码?

  2. 我设想启动服务器端进程,该进程从主server.js代码接收库存更新,该代码也会触发listen(3000)调用。该库存更新流程如何才能访问redux商店? (我的困惑是因为在我读过的大多数Express示例中,createStore()调用都在app.use('/', ...)内,因此每次有新的Web请求进入时都会生成商店。)

  3. 任何类似于我想做的项目的指针?感谢。

3 个答案:

答案 0 :(得分:3)

  1. 您必须编写将服务器更新传递给客户端的代码。最好的方法是使用websockets。您可以使用http://socket.io/等框架
  2. 您在服务器端使用createStore遇到的Express示例用于服务器端呈现。此处访问商店以推送库存更新不是首选。
  3. 简而言之,您需要做的是,

    1. 设置套接字io或websocket服务器
    2. 在客户端上,设置socket-io客户端。它等待来自服务器的消息。
    3. 每当您获得库存更新时,请通过socket io将数据从服务器发送到客户端。
    4. 当客户端收到消息时,使用数据调度一个动作,让redux流处理状态/存储。

答案 1 :(得分:2)

nope既不反应也没有redux处理服务器端和反应组件之间的通信(clientside)

  • react作为一个ui视图
  • redux管理应用程序状态

服务器和客户端之间的通信属于动作和动作创建者,在这种情况下,你可以对服务器进行ajax调用(通过轮询),状态可以是一个布尔提取,获取,faliure所有这些都需要在与响应对象一起存储。

关于服务器端库存更新过程的问题,没关系,因为只有实现者才知道初始状态是什么,因此要问的问题是,调用createstore()和调用什么是重要的它是应用程序的初始状态。 在你的情况下,createStore可以配置为这样一种减速器,它在主服务器的时间点取出库存.js

你也可以查一下 relay and graphql ,它带有网络层,用于默认与服务器通信,所有这些都试图管理应用程序状态

答案 2 :(得分:1)

[回答我自己的问题]上面各种贡献者的回答是正确的,非常有用,但我一直在(重新)学习如何用react和redux构建应用程序。我想分享我的新知识: