十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关Socket Socket.io Websocket HTTP之间的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
专注于为中小企业提供成都做网站、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业登封免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
Socket 是操作系统提供的对于传输层(TCP / UDP)抽象的接口,是一个编程概念,而 Websocket 、Socket.io 与 HTTP 一样是一个成文的互联网协议。另外,Websocket 和 HTTP 都是基于 TCP 传输数据,Socket.io 可以看作是对 Websocket 和 HTTP 的又一次封装。
HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接。
无状态:每次连接只处理一个请求,请求结束后断开连接。
无连接:对于事务处理没有记忆能力,服务器不知道客户端是什么状态。
以往实现即时通讯的手段:
轮询:客户端定时向服务器发送 Ajax 请求,服务器接到请求后马上返回响应信息并关闭连接。
长轮询:客户端向服务器发送 Ajax 请求,服务器接到请求后 hold 住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。
长连接:在页面里嵌入一个隐蔵 iframe,将这个隐蔵 iframe 的 src 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。
Flash Socket:在页面中内嵌入一个使用了 Socket 类的 Flash 程序 JavaScript 通过调用此 Flash 程序提供的 Socket 接口与服务器端的 Socket 接口进行通信,JavaScript 在收到服务器端传送的信息后控制页面的显示。
Websocket 的出现就是为了解决 HTTP 在即时通信中存在的不足,HTTP 是通过 Polling 实现即时通信存在很大的资源开销。
Webscoket 握手阶段采用 HTTP 协议,连接建立之后便与 HTTP 协议没有任何关系,Websocket 连接建立之后,client 与 server 可以同时收发数据,全双工通讯。
Socket.io 支持 Websocket 协议,支持多种轮询机制,它实现了实时、双向、基于事件的通讯机制,天生用来解决实时通讯问题。另外,Socket.io 能够根据浏览器对通讯机制的支持情况自动地选择最佳的方式来实现网络实时应用。
关于“Socket Socket.io Websocket HTTP之间的区别有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。