当前位置:  开发笔记 > 运维 > 正文

使用单个HTTP/2连接进行双向(和对称)通信

如何解决《使用单个HTTP/2连接进行双向(和对称)通信》经验,为你挑选了1个好方法。

HTTP/2引入了一些非常有趣的功能,例如流水线操作,多路复用和服务器推送承诺; 这本身就很棒.作为回报,我们牺牲了WebSockets.

理论上,HTTP/2允许以推送承诺的形式在服务器和客户端之间进行双向通信.服务器甚至可以在被要求之前向客户端发送响应.再次; 真棒.这些请求虽然与客户的请求不同.

所以,眼下的问题:
有没有办法有一个单一的 HTTP/2接口,允许服务器和客户端任意消息(二进制的加分)发送到彼此,而不需要定义不同的协议,用于客户端发送的消息服务器发送消息

WebSockets是我正在寻找的一个很好的例子,因为任何一方都可以启动连接,然后两者都可以发送消息.

不破坏HTTP/2的解决方案将是理想的,但也欢迎协议滥用.
非常感谢你提前.

PS.本练习的目的是确定是否可以在没有服务器/客户端体系结构的情况下在HTTP/2之上设计传输协议(如GRPC,Thrift等),但是双方都可以发送和接收消息等功能,例如req/resp,pub/sub,rpc等可以构建在上面.



1> dsign..:

现在,最接近您想要的是服务器发送的事件.它应该可以很好地与HTTP/2一起工作,除了习惯性的IE之外,所有浏览器都支持它,但是有一个polyfill可用(它会占用你的RAM).没有某种类型的转义,没有二进制支持,因为换行符用于分隔消息部分和消息本身.

还有一些说明(欢迎更正):

Websockets很好用.如果不是现在,HTTP/2 Connect在不久的将来应该是可用的.

但是服务器无法启动到客户端的websockets.

推送承诺服务于一个非常不同的目的,不,你不能用它们代替websockets.

HTTP/2推送称为推送,但它与从服务器推送的通知无关.通过节省往返次数,这或多或少是减少应用程序加载时间的明智方法.

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有