socket.io一对一实时聊天

socket.io是什么?

Socket.IO 是一个库,可以在客户端和服务器之间实现 低延迟双向 和 基于事件的 通信

Socket.IO 是一个开源的 JavaScript 库,可以实现实时通信,适用于构建实时应用程序,如消息通讯和多人在线游戏等等。能用于实时通讯的库有很多,其中包括:WebSocket、SignalR Pusher等等,但是socket.io对于消息通讯支持得比较好,所以我们选用soket.io。

官网链接地址:介绍 | Socket.IO

效果展示

用到的技术栈

前端:vue3+socket.io-client

后端:express+socket.io

connection --- 建立连接
disconnect --- 断开连接

// server-side
io.on("connection", (socket) => {
  console.log(socket.id); // x8WIv7-mJelg7on_ALbx
});

// client-side
socket.on("connect", () => {
  console.log(socket.id); // x8WIv7-mJelg7on_ALbx
});

socket.on("disconnect", () => {
  console.log(socket.id); // undefined
});

服务端

socket.io一对一实时聊天_第1张图片

客户端

socket.io一对一实时聊天_第2张图片

优点及特点介绍

跨平台兼容性:socket.io 支持在多种平台和设备上使用,并且可以在客户端和服务器之间建立可靠的连接,包括浏览器、服务器和移动设备。

双向通信:socket.io 提供了一个基于事件的双向通信机制,使得服务器和客户端可以实时地发送和接收数据。这种实时通信模型非常适用于聊天应用程序、实时协作工具等需要即时更新的场景。

异地分布支持:socket.io 具有对异地分布的支持,即使服务器和客户端在不同的服务器上,也可以通过 socket.io 建立稳定的连接并进行实时通信。

自动回退:socket.io 使用了一种自动回退机制,如果浏览器或设备不支持 WebSocket 协议,它将自动降级到使用长轮询或其他传输方式,以确保与服务器的连接仍然可靠。

极简的 API:socket.io 提供了简单易用的 API,使得开发者可以轻松地建立和管理基于事件的通信。它提供了事件绑定、消息发送、房间管理等功能,使得开发者可以专注于业务逻辑的实现。

可靠性和容错性:socket.io 具备可靠性和容错性,在网络不稳定或断开连接的情况下,可以自动重新连接,并提供一些机制来处理丢失的数据包,保证通信的顺利进行。

在服务器端,我们可以使用 on 方法来监听自定义事件


你可能感兴趣的:(前端,javascript,websocket)