【问题标题】:How can I send notifications from my Java server to my react-native client in realtime?如何从我的 Java 服务器实时向我的 react-native 客户端发送通知?
【发布时间】:2021-07-01 21:28:23
【问题描述】:

我想从我的 Java 服务器向我的 react-native 客户端发送消息。

我不知道如何解决这个问题。服务器是否应该通过客户端的IP地址与所有客户端建立连接并发送消息然后再次关闭连接? (对我来说听起来最明智。)

我认为这会比客户端连接到服务器并且应该始终保持连接更好。毕竟,它应该以高性能运行。

基本上,客户端连接到服务器对我的系统没有多大意义,因为只有服务器知道它何时以及是否发送消息。

我已经尝试过使用 websockets。但是,如果没有客户的请求,它似乎无法正常工作。

困难在于找到一种在服务器端使用 Java 并在客户端使用 JavaScript 并且连接是从服务器到客户端而不是从客户端到服务器的方法。此外,传输应该是实时工作的。

这可行吗?有没有更好的方法?我该怎么做?

我希望你能帮助我。

您好。马丁

The basic function of the system

【问题讨论】:

  • 使用 websockets 是从服务器实时向客户端发送消息的唯一方法。客户端必须启动(并重新建立)连接,但我不明白这是怎么回事。一旦你的 React 应用安装,它就会建立连接。

标签: javascript java react-native


【解决方案1】:

有多个基于云的消息传递平台。其中之一是来自 Google 的 Firebase,它是免费的(我猜)。在这里查看。 https://firebase.google.com/docs/cloud-messaging

您将找到多个教程来在您的 react-native 和 Java 服务器中配置和使用它。

架构概览:https://firebase.google.com/docs/cloud-messaging/fcm-architecture

另一种解决方案是使用 WebSocket 编写您自己的逻辑。

消息的生命周期:https://firebase.google.com/docs/cloud-messaging/fcm-architecture#lifecycle_flow

【讨论】:

  • 我从未真正处理过 firebase,因为据我所知,您必须使用 Google 进行托管,而我无法在我的服务器上运行系统。我怎样才能自己建造这个结构?是否可以在没有客户端请求的情况下通过 HTTP 传输数据,或者是否有其他协议可以在没有客户端请求的情况下进行数据传输?我只需要与 Firebase 相同的系统,只是没有那么复杂。使用 websockets,请求只是一个注册选项,以便服务器知道客户端存在。但我不需要那个,因为我有客户端的 IP 地址。
猜你喜欢
  • 1970-01-01
  • 2014-06-06
  • 2022-06-15
  • 2014-08-12
  • 2020-08-01
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多