http协议在嵌入式开发很常见,就是面向服务器的一次连接(一次通信完就断开),客户端可以根据不同的路由来访问服务器不同的功能

Websocket是http基础上升级的双向长连接协议,客户端自己构建http请求头,加上一些请求升级服务器会在请求头到了之后保存套接字,后续使用套接字来进行通信,依靠二进制来进行通信,后续就没有服务器的应答,全是纯二进制数据。脱离了http协议。

SSE是基于http的长连接协议,并没有脱离http,只是对http连接的延长,但他是单向的,只能服务器向客户端发送数据,数据都是文本和字符串,同样,客户端也需要自己构建请求头,服务器响应后也会保存套接字来进行通信,后续服务器发的数据就是应答+数据。。。应答+数据,循环发送,每一个应答和数据都是一个数据体,服务器一次消息发送,客户端在消息处理函数里面是相当于收到了两个数据体。

客户端可以根据不同的URI,比如想要使用websocket,就在路径后面加上/ws,就可以访问服务器针对websocket协议的回调函数,服务器根据不同的路由来设置不同的回调函数,来实现支持不同的通信协议。