gpt4 book ai didi

java - 自动发送数据到客户端,无需API调用

转载 作者:行者123 更新时间:2023-12-02 02:22:44 32 4
gpt4 key购买 nike

我正在寻找一种解决方案,服务器将发送数据,而无需从 UI 端调用任何 API。基本上,在我的应用程序中有两个面板 1. 接待员仪表板 2. 访客移动应用程序。如果任何请求来自访客应用程序,则该请求应自动显示在接待员仪表板中,而无需刷新页面(隐式/显式)。

我尝试过这些方法。1. 每分钟页面刷新后自动调用API 用旧数据得到新数据。 但在这种情况下,每隔一分钟就会发生服务器调用,即使 如果没有与此相关的新请求。2.我使用了Web套接字编程,但在这种情况下代码调试是 主要挑战。

除了这些还有其他解决办法吗?如果没有,那么我该如何解决我面临的问题。

最佳答案

TL;DR

由于您不知道新数据何时到达服务器,因此让客户端请求数据并不理想,正如您已经提到的那样。我想到了三种替代方案:实时数据库、推送通知和 WebSocket。

WebSockets 似乎是一个不错的选择,因为您可以轻松地在服务器端实现它,并且大多数现代浏览器已经在 native 实现了它。您提到它很难调试,但是您知道 Chrome 对它的支持吗[ 1 ]?

  1. Launch Chrome Developer tools
  2. Load your page and initiate the WebSocket connections
  3. Click the Network Tab.
  4. Select the WebSocket connection from the list on the left (it will have status of "101 Switching Protocols".
  5. Click the Frames sub-tab. Binary frames will show up with a length and time-stamp and indicate whether they are masked. Text frames will show also include the payload content.

实时数据库

Firebase 提供多种服务,其中之一是实时数据库(旧版本)和firestore 数据库(新版本)。使用他们的 SDK,您可以从服务器端更新数据库并监听客户端的更改。在客户端,您将使用可观察对象,一旦数据库发生更改(如果您正在监听更改),您将在客户端上收到该数据,而无需执行请求。 SDK 很可能会提出请求,但老实说,我不知道他们如何处理这个问题,但这减轻了开发人员的负担。许多请求都是付费的,但值得一看。

推送通知

类似地,Firebase(以及其他公司,例如 Amazon)为您提供推送通知/云消息传递服务,该服务允许您将数据发送到客户端,而无需客户端发出请求。这是通过使用构建在 Service Worker API 之上的 Notification APIPush API 来实现的 [ 2 ]。这种技术的优点是即使用户关闭了应用程序,您也可以通知用户。

WebSocket

WebSockets 允许您建立双向通信,然后允许各方(客户端和服务器)相互发送数据。一些工具如 Socket.IO与传统的 WebSocket 相比,它为您提供更多的控制和功能( channel /房间、自动重新连接等),但需要一些开销。

关于java - 自动发送数据到客户端,无需API调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57269247/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com