Socket.IO 是一个库,可实现 Web 客户端和服务器之间的实时、双向和基于事件的通信。 传统上,Socket.IO 在服务器客户端体系结构中运行,其中服务器处理所有通信逻辑并维护持久连接。
随着无服务器计算的日益采用,我们引入了一种新的模式:Socket.IO 无服务器模式。 此模式允许 Socket.IO 在无服务器环境中运行,通过 RESTful API 或 Webhook 处理通信逻辑,提供可缩放、经济高效且无维护的解决方案。
默认模式与无服务器模式之间的差异
| 功能 / 特点 | 默认模式 | 无服务器模式 |
|---|---|---|
| Architecture | 对服务器和客户端使用持久连接 | 客户端使用永久性连接,但服务器以无状态方式使用 RESTful API 和 Webhook 事件处理程序 |
| SDK 和语言 | 需要使用官方的 JavaScript 服务器 SDK 和 Web PubSub for Socket.IO SDK 的扩展库;所有兼容的客户端。 | 没有必需的 SDK 或语言。 使用 Socket.IO 函数绑定 简化与 Azure 函数的集成;所有兼容的客户端 |
| 网络可访问性 | 服务器无需公开网络访问,因为它主动连接到服务 | 服务器需要公开对服务的网络访问 |
| 功能支持情况 | 大多数功能受支持,但某些不支持的功能: 不支持 Socket.IO 的服务器 API | 请参阅支持的功能列表: 支持的功能和 RESTful API |
后续步骤
本文概述了适用于 Socket.IO 的 Web PubSub 无服务器模式。