socket和webSocket

webSocket使用场景

社交聊天、实时弹幕、多玩家游戏、协同编辑、股票基金实时报价、体育实况更新、视频会议/聊天、共享实时位置、在线教育、智能家居等。

它们的共同点:都要求高实时性

webSocket的诞生

最开始的轮询polling

每隔一段时间就询问一次,每次发送请求都会有http的header

缺点:耗流量、耗CPU

改进版长轮询long polling

客户端发送http给服务端后,如果没有新消息就一直等待,直到有新消息才返回给客户端

缺点:如果服务端数据更新很快,服务器传送一个数据包给客户端之后,必须等待客户端下一次请求到来才能传送第二个,所需时间是用户不能接受的

webSocket诞生

能支持客户端和服务端双向通信,且协议头部没有http的header那么大

webSocket协议原理

websocket是应用第七层的一个应用层协议,必须依赖http协议进行一次握手,握手成功之后数据直接从TCP传输,跟http无关了。

数据传输:是以frame形式传输的,会将一条消息分为几个frame先后传输出去,好处:大数据的传输可以分片传输;和http的chunk一样可以边生成数据边传递消息,提高传输效率

webSocket和socket的区别与联系

socket是对TCP/IP协议的封装,它并不是协议,而是一个调用接口(API)。它工作在OSI模型会话层(第5层),是为了方便大家使用更底层协议(一般是TCP或UDP)而存在的抽象层。

socket通常称作‘套接字’,用于描述IP地址和端口,是一个通信连的句柄。网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket,一个Socket由一个IP地址和一个端口号唯一确定。应用程序通常通过”套接字”向网络发出请求或者应答网络请求

Socket在通讯过程中,服务端监听某个端口是否有连接请求,客户端向服务端发送连接请求,服务端收到连接请求向客户端发出接收消息,这样一个连接就建立起来了。客户端和服务端也都可以相互发送消息与对方进行通讯,直到双方连接断开

发布了24 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43869192/article/details/103970461
今日推荐