发送心跳包的目的一般是为了保持连接,客户端的HTTP请求无状态,用完即断,除了还在传输的时候需要保持连接(这个时候也不需要心跳啊),我想不到需要心跳保持的情况。 如果你是为了通过发送一个HTTP请求保持其他业务的心跳,那很方便。 如果你说的是serversentevent 心跳保持就是服务端随便推个字符,浏览器客户端忽略这个特殊心跳数据就完了,因为如果浏览器长时间没有收到数据,这个HTTP请求也会断掉。 至于socket双向支持心跳发送接收信息可以很简单,实时性很高,上面我说的HTTP相关内容都是在客户端为浏览器的情况下,在浏览器上直接支持的就是HTTP,如果使用socket,webbsocket的话服务端也需要特殊订制,难度高于普通HTTP以及SSE。如果不使用websocket而是基础socket的话,浏览器不支持,需要特定的客户端。 总结一下: HTTP在浏览器上方便、socket在浏览器上不方便、socket实时性更好
一个是主动请求 ,一个是常连接的双向管道