我在我的项目中使用了Apache Kafka,并且需要将它集成在一个反应原生的应用程序中,这也是项目的一部分。基本上,我的服务器是Kafka制作人,应用程序需要倾听主题并成为消费者。
首先,我尝试使用这个npm包。 https://github.com/SOHU-Co/kafka-node。
但是这个包依赖于不属于React Native包的nodejs的核心模块。有没有其他方法可以让我在React Native应用程序中使用Kafka进行交流?
谢谢!
答案 0 :(得分:0)
快速解决方案是将Kafka集群置于简单的REST API之后。使用像kafka-rest这样的库可以很方便地使用内置的fetch
函数连接您的React Native应用程序。您可以更进一步,尝试将kafka-rest-node客户端集成到您的React Native应用程序中;对repo的粗略概述不会导致任何核心节点依赖性。
另一种方法,允许" live"更新,可能包括将Kafka放在将Kafka流转换为WebSocket连接的Web服务器后面。诸如kafka-websocket之类的库允许客户端使用和生成,而像Microsoft的kafka-proxy-ws这样的更简单的库只允许消费消息。
值得注意的是,移动客户端始终不能很好地处理流数据,建议您在各种不确定的网络条件下测试基于WebSocket的实施(延迟,信号丢失等)。
答案 1 :(得分:0)
尝试DeepstreamIO。
它是一个与React-Native和Kafka完美集成的实时套接字服务器。它可以使用Kafka作为消息代理,在分布式Deepstream节点之间传递消息,并将消息推送到其他订阅的客户端。它们是开源的,因此您可以根据您的特定需求配置其连接器。