Socket.IO - 概述


Socket.IO 是一个用于实时 Web 应用程序的 JavaScript 库。它支持 Web 客户端和服务器之间的实时、双向通信。它有两部分:一个在浏览器中运行的客户端库和一个用于 Node.js 的服务器端库。两个组件都有相同的 API。

实时应用

实时应用程序 (RTA) 是在用户感知为即时或当前的一段时间内运行的应用程序。

实时应用程序的一些示例是 -

  • 即时消息- 聊天应用程序,如 Whatsapp、Facebook Messenger 等。您无需刷新应用程序/网站即可接收新消息。

  • 推送通知- 当有人在 Facebook 上的图片中标记您时,您会立即收到通知。

  • 协作应用程序- 像 google docs 这样的应用程序,允许多人同时更新相同的文档并将更改应用于所有人的实例。

  • 在线游戏- 诸如《反恐精英》、《使命召唤》等游戏也是实时应用程序的一些示例。

为什么选择Socket.IO?

使用 LAMP (PHP) 等流行的 Web 应用程序堆栈编写实时应用程序传统上非常困难。它涉及轮询服务器以了解更改,跟踪时间戳,并且它比应有的速度要慢得多。

传统上,套接字是大多数实时系统构建的解决方案,在客户端和服务器之间提供双向通信通道。这意味着服务器可以向客户端推送消息。每当事件发生时,服务器都会获取该事件并将其推送到相关的连接客户端。

Socket.IO 非常流行, Microsoft Office、Yammer、Zendesk、Trello 等都使用它。和许多其他组织构建强大的实时系统。它是GitHub上最强大的JavaScript 框架之一,也是最依赖的 NPM(节点包管理器)模块。Socket.IO 还拥有庞大的社区,这意味着寻求帮助非常容易。

ExpressJS

我们将使用 Express 构建 Socket.IO 将使用的 Web 服务器。任何其他节点服务器端框架甚至节点 HTTP 服务器都可以使用。然而,ExpressJS 可以轻松定义路由和其他内容。要了解有关 Express 的更多信息并了解它的基本概念,请前往 – ExpressJS 教程。