Socket

Socket 是一种应用层协议,它在应用层和传输层之间提供了一种中间层,允许客户端和服务器端的双向通信。它使用 TCP/IP 协议,它可以在客户端和服务器端之间进行双向通信,而不需要客户端发起请求,这样可以实现实时通信。Socket 也可以使用 UDP 协议,但是 UDP 不能保证数据的可靠性,因此 TCP 更常用。

Socket.io

Socket.io 是一个基于 Node.js 的开源库,它使用 WebSocket 协议来实现实时双向通信。Socket.io 可以让客户端和服务器端之间进行双向数据传输,它还支持跨浏览器的实时通信,即使不支持 WebSocket 的浏览器也可以使用 Socket.io。Socket.io 还可以检测网络连接状态,如果网络连接中断,它可以自动重新连接。

Websocket

WebSocket 是一种通信协议,它使客户端和服务器端之间可以进行双向通信,而不需要客户端发起请求。WebSocket 使用 TCP 协议,可以在客户端和服务器端之间进行双向通信,而不需要客户端发起请求,这样可以实现实时通信。WebSocket 也可以使用 UDP 协议,但是 UDP 不能保证数据的可靠性,因此 TCP 更常用。

HTTP

HTTP 是一种应用层协议,它定义了客户端和服务器端之间的通信规则。HTTP 是基于请求 / 响应模型的,客户端发起请求,服务器端返回响应。HTTP 协议使用 TCP 协议,可以在客户端和服务器端之间进行双向通信,但是 HTTP 协议只能由客户端发起请求,服务器端不能主动发送数据,因此不能实现实时通信。