当react组件被装载时(即,在componentdidmount()中),我如何在react组件内部订阅redis通道?
在互联网上,我几乎在任何地方都能看到带有nodejs的redis实现,但却找不到任何足够的提示如何在react应用程序中使用它。
实际上,我想更新我的电子商务 Jmeter 板(React应用程序)数据,而不刷新页面。在后端,我使用了djangorest框架。当任何api被触发以更改任何数据时,python代码将执行其工作,并在特定redis通道中发布消息。
我想从客户端(react应用程序)订阅该频道,以便它可以使用此消息并实时更新其内容。
1条答案
按热度按时间ndasle7k1#
react组件(客户端技术)不应该能够访问redis(服务器技术)以获得明显的安全问题。
如果您在服务器端使用react生成带有react using node的响应,则该节点应该进行此访问。
如果要从web前端(使用web浏览器)访问redis,必须建立以下体系结构:
react使用websocket访问服务器并侦听消息。
node js中的服务器(使用socket.io)、aspnet core中的服务器(使用signalr)访问redis并将更改传递给客户机,这要感谢websocket技术。
如果您想知道如何做的更多细节,您应该描述您在客户端使用的技术栈。
不过,简而言之,对于客户端来说,最好使用redux可观察堆栈。在本例中,这将是一个epic,它将在服务器通知某些内容时更新redux状态。如果您对rxjs不满意(这是可以理解的!),那么最简单的方法就是使用mobx(https://mobx.js.org/readme.html)