文章正文
反向Ajax技术,又称为服务器推技术,server push等。一般用于“在线客服”、“消息推送”、“即时通信”等功能中,比如新浪微博的私信功能,就是客户端不断的请求服务器并创建连接,去查看服务器有没有返回的信息,建立连接比较浪费服务器资源,下面我将根据客户端创建连接的不同性来介绍一下实现反向Ajax的三种思路。
记录-交流-Web开发知识分享
Mercure是一种用于实时通信的开放协议,旨在快速,可靠和节省电池。它是Websocket API和依赖它的高级库和服务的一种现代便捷的替代方法。
Mercure在将流和异步功能添加到REST和GraphQL API时特别有用。由于它是HTTP和SSE之上的薄层,因此现代Web浏览器,移动应用程序和IoT设备都原生支持Mercure 。…
HTTP/2附带的热门功能之一是PUSH帧。主要思想是,如果服务器可以预测客户端可能要发出的请求,则服务器可以抢先向客户端发送请求/响应对并预热其缓存。
这是我很久以来一直很感兴趣的功能。我认为API使缓存无效和预热缓存,消除对复合请求的需求(我认为这是一种技巧,尽管有时是必要的)非常有用。
为了帮助推进这个想法,我编写了Internet Draft,以使API客户端告诉服务器他们希望推送哪些资源,我构建了具有一流,深度集成的Push支持并添加了支持的Node.js框架。为Prefer-Push
给Ketting。…
文章正文
反向Ajax技术,又称为服务器推技术,server push等。一般用于“在线客服”、“消息推送”、“即时通信”等功能中,比如新浪微博的私信功能,就是客户端不断的请求服务器并创建连接,去查看服务器有没有返回的信息,建立连接比较浪费服务器资源,下面我将根据客户端创建连接的不同性来介绍一下实现反向Ajax的三种思路。
原文地址:https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/
我们很高兴地宣布,2018年2月20日发布的NGINX 1.13.9支持HTTP / 2服务器推送。对于NGINX Plus用户,即将发布的NGINX Plus R15版本将包含HTTP / 2服务器推送支持,计划于2018年4月发布。
HTTP / 2规范中定义的服务器推送允许服务器抢先将资源推送到远程客户端,预计客户端可能很快会请求这些资源。通过这样做,您可以在页面加载操作中将RTT(往返时间 - 请求和响应所需的时间)减少一个RTT或更多,从而为用户提供更快的响应。
服务器推送可用于为客户提供样式表,图像以及呈现网页所需的其他资源。您应该注意只推送所需的资源; 不要推送客户端可能已经缓存的资源。
在这篇博文中,我描述了:
nghttp
)Link
标题自动推送内容使用HTTP/2服务端推送(Server Push),大幅提升网页脚本图片加载速度
NGINX从1.13.9版本开始支持HTTP/2服务端推送, 使用此特性,能大幅提升前端页面加载速度,如,js.css,image等的加载速度大幅提升。经测试js.css的加载时间,从平均几百毫秒到几秒提升到几毫秒到十几毫秒(1M带宽测试)。
升级工作主要包括:
WebSocket是一种比较新的协议,它是伴随着html5
规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持。它使用方面、应用广泛,已经渗透到前后端开发的各种场景中。
对http一问一答
中二式流程的不满,催生了支持双向通信的WebSocket
诞生。WebSocket是个不太干净
协议。
不是。目前此协议的受众的也不仅仅是web开发者。
WebSocket只是一种协议,它和http协议一样,使用类似okhttp
的组件,可以在任何地方进行调用,甚至可以借助WebSocket实现RPC
框架。
WebSocket和http一样,都是处于OSI
模型中的最高层:应用层
。
WebSocket借助http
协议进行握手,握手成功后,就会变身为TCP通道
,从此与http不再相见。使用netstat或者ss,能够看到对应的连接,它与处于抽象层的socket,在外观上没有区别。
长轮询,就是客户端发送一个请求,服务端将一直在这个连接上等待(当然有一个超长的超时时间),直到有数据才返回,它依然是一个一问一答的模式。比如著名的comted。
WebSocket在握手成功后,就是全双工
的TCP通道,数据可以主动从服务端发送到客户端,处于链接两端的应用没有任何区别。
WebSocket创建的连接和Http的长连接是不一样的。由于Http长连接底层依然是Http协议,所以它还是一问一答,只是Hold住了一条命长点的连接而已。
长轮询和Http长连接是阻塞的I/O,但WebSocket可以是非阻塞的(具体是多路复用)。
WebSocket的连接创建是借助Http协议进行的。这样设计主要是考虑兼容性,在浏览器中就可以很方便的发起请求,看起来比较具有迷惑性。
文章2017 前端大事件和趋势回顾,2018 何去何从?中提到了2017年前端值得关注的十大事件,其中就提到了PWA。
大家都知道Native app体验确实很好,下载到手机上之后入口也方便。它也有一些缺点:
文章翻译自 Jens Deters 11/30/17 的 Hello MQTT Version 5.0!
2017年8月9日,OASIS MQTT技术委员会宣布MQTT 5.0版现已公开发布,并将于9月8日前发表评论。并且预计在17年年底发布下一版本的Message Queue Telemetry Transport(MQTT),MQTT v5.0是MQTT 3.1.1的后续版本。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。
根本原因在与协议规范说明中, MQTT CONNECT Control Packet (响应头的)第7个字节处,需要指定协议的级别,因为mqtt 3.1.1时 定义协议级别时使用了 0x04 (占用了4的版本号),所以下一代协议的级别只能是 0x05 (5)。
最重要的是: mqtt v5.0是不向后兼容的,显然有太多的新东西要被引入,所有现有的实现要重新实现。…
最近翻译了MQTT v5.0协议的公开审阅版,已经传到GitHub上了,可以参见:MQTT v5.0 协议草案中文翻译
MQTT v5.0添加了以下特性
近期评论