菜鸟必知实时获取数据的五种方案
在开发的项目中,需要实时获取最新的股价,实时显示项目在线人数,即时通讯等。你会通过什么方法实现呢?下面就说说实时获取数据的几种方式,我尽量按照从low到复杂的顺序罗列。http协议
这个协议大家肯定很熟悉了,客户端与服务端三次握手后就可以实时交换数据了,基于这个基础,可以用几个方法来实时获取数据。
ifram/frame
对于菜鸟来说,这未必不是个聪明的解决方法。在需要显示的区域嵌入一个frame框,然后通过js或meta标签控制,不停的刷新获取。
优点:简单实用。
缺点:不停地向服务器请求,对服务器压力最大。
应用场景:局域网,客户端数量不大短轮询
这里我们要用到ajax了,还是通过Js重复的请求服务器来获取实时数据。比起frame刷新,减少了浏览器的渲染过程。并且因为使用了异步处理,没有画面闪现。交互效果更好。
优点:异步处理,交互效果好
缺点:仍然需要不停地向服务器请求
应用场景:短时间的获取数据,比如支付状态,授权登录状态判断等
长轮询
长轮询与短轮询的唯一区别是,服务端会判断数据变化来响应客户端。如果数据未发生变化,则暂时阻塞。这样就减少了许多无意义的重复请求
优点:减少请求响应次数
缺点:仍然需要不停地向服务器请求,还有挂起时比较消耗内存。
应用场景:icommet等插件就是用的长轮询。websocket协议
上面的三种方式都用了http协议,缺点不言而谕了。都需要周期性的向服务器请求,对服务器造成压力。而且也不能得到真正的实时数据,因为每次周期请求都会有间隔。这时候我们就用到了websocket协议了。
与http协议很相似也需要三次握手,只是服务器返回的状态码不是200,而是101.意味着接下来客户端与服务端之间的通信是通过websocket来进行的。这个通信服务端会阻塞,是不会中断的。每当有数据变化时就会主动传给客户端。
websocket
比起http协议,websocket节不需要重复请求。而且响应数据不必包含header头文件,只响应body部分。因此节省了流量和服务器压力。实现了真正的实时数据。
优点:不用重复请求服务器,响应数据不用带header头
缺点:不兼容低版本IE,开发相对复杂。
应用场景:对数据实时变化要求高的场景xmpp
xmpp是在websocket基础上的即时通信协议,主要应用于即时通讯。数据传输使用xmL格式。
优点:有相应的框架,sdk,使用简单。
缺点:请求过多时,对服务器内存,cpu要求较高
应用场景:即时通讯结语
本文说了实时获取数据的几种方式,针对不同的应用场景和实际情况采纳不同的方案,有时候简单一点挺好。下次咱们聊聊使用websocket开发聊天室的实例。
深入理解SpringCloud一(3)Nacos配置中心一应用启动的时候如何从配置中心拉取配置文件通过上一节的介绍,我们已经知道了配置加载的扩展点。下面我们已具体的Nacos配置中心来进行说明。NacosConfigBootstrapC
还没搞懂元宇宙是个啥,就有人用它诈骗了什么是元宇宙?元宇宙简单来说就是一个虚拟的世界,人类能够以虚拟的身份进入到一个新的世界。元宇宙概念一出,便引来了各界人士的高度关注,然而也被不法分子悄悄盯上,他们假借元宇宙的名头,
又拿下一笔融资,两个80后拉着72岁张艺谋玩转元宇宙来源投资家(IDtouzijias)作者老高72岁张艺谋也玩起了元宇宙。投资家网获悉,北京冬奥会秀出肌肉的XR沉浸式体验解决方案企业当红齐天近日完成一笔B轮融资,投资方为拉卡拉及蓝
收好这份电动牙刷清单,满足全家购置需求不知道大家有没有听过自己家里人抱怨说,自己的牙齿越来越不好了,吃东西都不痛快。其实我们牙齿出现的大部分问题,基本都是由于清洁不当引起的,像使用手动牙刷的方法不准确或力度掌握不好,就
在家也能沉浸式看大片,2万元搞定家庭影院附购买清单写在开头今年贺岁档看下来,还是蛮失望的,本想着的喜剧和合家欢题材也差强人意,动作大片今年贺岁档也缺席了,几部影片的评分和市场反馈也很一般,加上电影票价也一路走高,一张票价都卖到了七
华为的冬天2000年,互联网泡沫破裂,任正非对员工发表了题为华为的冬天的讲话。当年华为销售额220亿人民币,利润29亿人民币,位居全国电子百强首位。也许正是这种强烈的居安思危的意识,华为才能
互联网是有记忆的?新浪微博炒作过时言论将被处置2月19日,新浪微博社区管理官方发布了关于炒作过时言论的治理公告,公告称微博社区持续发力,加强对平台内不友善言论的治理与引导。该期公告开宗明义,表示着重讲解不友善行为的表现之一炒作
Vue动态路由的实现(后台传递路由,前端拿到并生成侧边栏)动态路由是一个常用的功能,根据后台返回的路由json表,前端动态显示可跳转的路由项,下面来讲解一下具体的实现方式大致业务需求前端在login登陆页,输入账号密码后,点击登陆,接口返
print的基本用法print的基本用法当我们编好程序后,程序运行到什么地方,运行的结果又是什么,这个时候都要电脑来告诉我们,我们可以让电脑通过print()函数来告诉我们,今天,我们就来学习这个函数
体量庞大,微软还能突飞猛进吗?文美股研究社微软(MSFT)普遍引用的31倍市盈率是基于会计收益,并不反映其真正的经济盈利能力,而会计收益大大低估了其真正的盈利能力。因此,它的估值实际上比表面上更有吸引力。以目前
即将上市的TCLP11电视怎么样?这款电视电视听说好像上市了,而且根据TCL的产品风格,性价比肯定不错。TCLP11电视采用了色彩表现力极佳的的屏幕,色域范围达到130BT。709色域。色域范围决定了电视能够呈现多