热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

websocketvsrestAPI用于实时数据?

如何解决《websocketvsrestAPI用于实时数据?》经验,为你挑选了1个好方法。

我需要不断访问服务器以获取金融工具的实时数据.价格不断变化所以我需要每0.5秒申请新价格.经纪人的REST API让我这样做,但是,我注意到连接到服务器时有一些延迟.我只是注意到他们也有websocket API.根据我的阅读,他们都有一些利弊.但是对于我想要做的事情,因为速度在这里特别重要,如果您推荐使用哪种API?websocket真的更快吗?

谢谢!



1> jfriend00..:

对于您所描述的内容,最有效的操作是在客户端和服务器之间使用webSocket连接,并让服务器通过webSocket直接向客户端发送更新的价格信息,只要价格变化一些有意义的金额或最小金额时时间已过,价格已经改变.

这可能比让客户不断要求新的价格变化以及新信息何时到达客户的时间更加及时更有效.

因此,如果您对新价格水平的信息到达客户端的速度感兴趣,那么webSocket可以更加及时地将其发送到那里,因为服务器可以在更改时立即将新的定价信息直接发送给客户端在服务器上.使用REST调用时,客户端必须在某个固定的时间间隔内轮询,并且只能在轮询间隔点获取新数据.

webSocket在您的网络基础架构上也可以更快更轻松,因为简单地通过已打开的webSocket连接发送数据包所需的网络操作较少,而不是为每个REST/Ajax调用创建新连接,发送新数据,然后关闭连接.在您的特定应用程序中,这会产生多大的差异/改进,这是您需要衡量才能真正了解的.

但是,webSockets旨在帮助您在客户端想要知道的特定场景(尽可能接近实时),当服务器上的某些内容发生变化时,我肯定会认为它是这种类型的首选设计模式使用.


以下是对已经打开的webSocket发送价格变化与进行REST调用所涉及的网络操作的比较.

的WebSocket

    服务器发现价格已发生变化,并立即向每个客户发送消息.

    客户收到有关新价格的消息.

REST /阿贾克斯

    客户端设置轮询间隔

    在下一轮询间隔触发器时,客户端创建到服务器的套接字连接

    服务器收到打开新套接字的请求

    与服务器建立连接后,客户端会向服务器发送新的定价信息请求

    服务器接收新定价信息的请求,并发送带有新数据(如果有)的回复.

    客户收到新的定价数据

    客户关闭套接字

    服务器接收套接字关闭

正如您所看到的,从网络角度来看,在Rest/Ajax调用中还有更多内容,因为必须为每个新调用建立新连接,而webSocket使用已经打开的调用.此外,在webSocket案例中,服务器只在新数据可用时向客户端发送新数据 - 客户端不必定期请求它.

如果定价信息不经常更改,则REST/Ajax方案也经常会在客户端请求更新的情况下进行"无操作"调用,但没有新数据.webSocket案例从来没有那么浪费的情况,因为服务器只在可用时发送新数据.


推荐阅读
  • 本文详细介绍了如何利用Go语言和WebSockets技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文由「Vue虚拟实验室」的成员effort撰写,深入探讨了Vue CLI 3.0创建项目后的配置细节,特别是如何通过配置代理解决开发环境中的跨域问题。 ... [详细]
  • 随着毕业设计的结束,我终于有时间更新我的博客了。这次,我将分享如何在自己的服务器上搭建 Bitwarden,一个广受好评的开源密码管理工具。 ... [详细]
  • HTML5 WebSocket技术详解与应用前景
    WebSocket 是 HTML5 引入的一种在单一 TCP 连接上实现全双工通信的技术。作为一种高效且低延迟的协议,WebSocket 允许服务器和客户端之间进行实时双向数据交换。该技术不仅简化了开发过程,还显著提升了 Web 应用的性能和用户体验。未来,随着更多应用场景的探索,WebSocket 在实时通信领域的应用前景将更加广阔。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 探讨在构建类似Viber或WhatsApp的聊天应用时,如何有效实现客户端(Web、Android、iOS)与服务器之间的连接。本文将分析使用WebSockets标准及其替代方案的优劣。 ... [详细]
  • 本文通过对OkHttp源码的详细解读,旨在帮助读者理解其核心执行流程,特别是同步与异步请求的处理方式。文中不仅涵盖了基本的使用示例,还深入探讨了OkHttp的核心功能——拦截器链的工作原理。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 本文详细介绍了如何在 Vue CLI 3.0 和 2.0 中配置 proxy 来解决开发环境下的跨域问题,包括具体的配置项和使用场景。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
author-avatar
mobiledu2502886187
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有