今天来讲一下与其他协议的区别和相同点,让各位同学能够更加深入的去了解和运用各种协议。
1 什么是WebSocket?
WebSocket从满足基于Web的日益增长的实时通信需求应运而生,解决了客户端发起多个Http请求到服务器资源浏览器必须要在经过长时间的轮询问题,实现里多路复用,是全双工、双向、单套接字连接,在WebSocket协议下服务器和客户端可以同时发送信息。
2 WebSocket和Http的异同点
同:1建立在TCP之上,通过TCP协议来传输数据。
2 都是可靠性传输协议。
3 都是应用层协议。
异:1 WebSocket是HTML5中的协议,支持持久连接,HTTP不支持持久连接
2 HTTP是单向协议,只能由客户端发起,做不到服务器主动向客户端推送信息。
3 WebSocket和Socket
Socket本身并不是一个协议,它工作在OSI模型会话层,是一个套接字,TCP/IP网络的API,是为了方便大家直接使用更底层协议而存在的一个抽象层。Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
而WebSocket则是一个典型的应用层协议。
4 WebSocket HTTP和TCP/IP
WebSocket和HTTP一样,都是建立在TCP之上,通过TCP来传输数据。后面的文章我会用代码举例子来展示。
5 Socket和TCP/IP
Socket是对TCP/IP协议的封装,像创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
说了这么多,希望对大家来理解WebSocket与Socket、TCP、HTTP的关系有所帮助,如果大家在工作当中需要用到WebSocket而不能解决问题的时候,建议大家可以使用一下一些三方的WebSocket,融云、极光、GoEasy等,我这里就给大家推一个简单免费的三方WebSocket,GoEasy。很成熟的一款产品,推荐原因是代码简单,运行稳定。网站是www.goeasy.io,大家可以自己去看一下。下篇文章我会用代码来举例说明这篇文章没有具体说的地方。