【问题标题】:Streaming data for a realtime web application实时 Web 应用程序的流数据
【发布时间】:2018-03-05 18:37:42
【问题描述】:

我正在构建一个 Web 应用程序,在该应用程序中,我需要在特定时间间隔内将连续数据从服务器推送到客户端,并且客户端发出一次请求。 它与交易应用程序中的用户登录应用程序一次并发布他能够看到利率不断变化而无需提出任何进一步请求的情况相同。

在研究中我发现,通过轮询我们可以实现这一点,但同时它也是连接数的开销。

我的服务器是微服务模型,客户端是 HTML5。

我们将不胜感激建议和帮助。

【问题讨论】:

  • 您可以使用 WebSockets API 进行服务器推送。
  • 你的服务器端框架是什么?
  • 在服务器端使用 spring-boot。我也尝试制作一个 WebSockets,但我无法阅读此异常:“无法识别的 SSL 消息,明文连接?”我知道它是因为 http 和 https 连接,但将不胜感激解释和可解决的解决方案。提前致谢。
  • 已添加我的相同代码:服务器代码:browxy.com/SavedCode/149334 客户端代码:browxy.com/SavedCode/149335 异常:发起 WebSocket 连接的 HTTP 请求失败无法识别 SSL 消息,明文连接?
  • 更新:我能够删除 SSL 消息错误,但在创建会话时仍然收到此错误并且无法找到任何解决方案:来自服务器 [404] 的 HTTP 响应不允许 HTTP升级到 WebSocket

标签: html spring-boot streaming spring-websocket java-websocket


【解决方案1】:

您可以使用Server Sent Events。它完全按照您的需要工作。客户端连接一次,然后服务器每次在后端发生变化时发送一个事件(即序列化为 JSON 的对象),方法是注册一个 callback function,以便在每次收到事件时调用。

下面是一个示例数据流:

event: userconnect
data: {"username": "bobby", "time": "02:33:48"}

event: usermessage
data: {"username": "bobby", "time": "02:34:11", "text": "Hi everyone."}

event: userdisconnect
data: {"username": "bobby", "time": "02:34:23"}

event: usermessage
data: {"username": "sean", "time": "02:34:36", "text": "Bye, bobby."}

Here 是 Spring 的教程。

【讨论】:

  • 嗨,Consntantin,感谢您的时间和帮助,但我正在为服务器端代码使用 spring-boot 框架。
  • @gauravkumar 所以?它可以使用任何可以保持连接打开的服务器端技术来完成。我已经在 PHP 和 JavaScript/Node.js 中完成了。
  • 哦,谢谢!!,将尝试实施,如果有任何问题(希望没有),将卷土重来。
  • @gauravkumar 欢迎您。另外,如果是这种情况,请将答案标记为解决方案;谢谢
猜你喜欢
  • 2021-08-03
  • 2011-05-05
  • 1970-01-01
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
相关资源
最近更新 更多