Spring WebFlux服务器发送事件的教程与源码 - vinsguru


在本教程中,演示服务器发送事件-一种从后端应用程序向浏览器推送通知/消息的机制。
传统上,浏览器必须向服务器发出请求以获取最新信息。到目前为止,一切正常。当我们必须像这样进行定期轮询时,大多数时候可能没有任何更新!当我们有多个客户端在没有太多更新的情况下每秒对服务器进行轰炸以进行更新时,这只是在浪费资源并进行不必要的网络调用。
例如:假设有交易申请。在白天,股票价格将保持每秒更新。在晚上/节假日将没有任何更新。因此,如果我们将应用程序设计为每秒继续轮询服务器,那么如果用户在交易时间后仍保持打开状态,则将进行不必要的网络调用。
服务器发送事件 是使用客户端和服务器之间建立的持久连接将数据传输到客户端应用程序的标准。通过服务器发送事件(SSE /事件流)方法,当服务器以更有效的方式进行一些更新时,我们的服务器会通知浏览器。
 
样例应用
让我们考虑一个针对抑郁症患者的简单应用程序。我们的应用程序每3秒连续发布一次笑话,并使客户满意。

  • 客户端/浏览器访问index.html或应用程序的主页
  • 主页可能包含诸如股票价格,一些最新新闻更新等信息。
    • 在我们的例子中,主页将包含一些笑话。
  • 像股票价格更新一样,笑话将在服务器端定期生成,需要与客户共享!

笑话API:
我们将使用下面的URL来获得随机笑话。这是一个简单的GET请求,没有任何身份验证。
https://official-joke-api.appspot.com/jokes/random
响应负载如下所示。笑话采用问答形式。

{
   "id":120,
   
"type":"general",
   
"setup":"How do hens stay fit?",
   
"punchline":"They always egg-cercise!"
}

更多点击标题见原文
源代码可在此处获得