Node.js精进(11)——Socket.IO

本文详细介绍了Socket.IO如何在WebSocket基础上提供低延迟、双向通信,并探讨了其广播功能、附加特性,如自动重连、数据包缓冲、多路复用。通过实例展示了如何创建HTTP服务器、Socket.IO服务器,以及广播消息的实现。此外,还讨论了命名空间、专属通道(room)和适配器在Socket.IO中的应用,帮助开发者更好地理解和运用Socket.IO。
摘要由CSDN通过智能技术生成

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

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

并且提供额外的保证,例如回退到 HTTP 长轮询、自动重连、数据包缓冲、多路复用等。

WebSocket 是一种基于 TCP 协议在服务器和浏览器之间提供全双工和低延迟通道的通信协议。

注意,Socket.IO 不是 WebSocket 的实现。尽管 Socket.IO 确实在可能的情况下使用 WebSocket 进行传输,但它为每个数据包添加了额外的元数据。

这就是为什么 WebSocket 客户端将无法成功连接到 Socket.IO 服务器,而 Socket.IO 客户端也将无法连接到普通的 WebSocket 服务器。

如果需要一个普通的 WebSocket 服务器,可以使用 wsµWebSockets.js

在 Socket.IO 的底层依赖 Engine.IO 引擎,它是跨浏览器/跨设备双向通信层的实现,可处理各种传输、升级机制和断线检测等。

刚刚所说的自动重连、数据包缓冲、多路复用等附加功能都是 Engine.IO 引擎提供的能力。

本系列所有的示例源码都已上传至Github,点击此处获取。

一、广播

现在来建立一个提供表单和消息列表的简单 HTML 网页,用 Socket.IO 广播消息(如下图所示),并且可以在页面中呈现消息内容。

1) HTTP 服务器

首先安装 socket.io 包:npm install socket.io。

然后创建一个 HTTP 服务器,用于接收 HTML 和 JavaScript 文件的请求,内部实现了个简单的路由。

其中 fs.readFileSync() 同步读取到的。

index.html 文件的内容会在后文给出,socket.io.js 是从 node_modules/socket.io/client-dist/socket.io.js 目录中复制过来的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值