Socket.IO - 概述



Socket.IO 是一个用于实时 Web 应用程序的 JavaScript 库。它使 Web 客户端和服务器之间能够进行实时、双向通信。它有两个部分 - 在浏览器中运行的客户端库和用于 node.js 的服务器端库。这两个组件具有相同的 API。

实时应用

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

一些实时应用的示例如下:

  • 即时通讯软件 - WhatsApp、Facebook Messenger 等聊天应用。您无需刷新您的应用/网站即可接收新消息。

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

  • 协作应用 - 像 Google Docs 这样的应用,允许多人同时更新同一文档并将更改应用于所有人的实例。

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

为什么选择 Socket.IO?

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

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

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

ExpressJS

我们将使用 Express 来构建 Socket.IO 将与其一起工作的 Web 服务器。可以使用任何其他 Node 服务器端框架,甚至 Node HTTP 服务器。但是,ExpressJS 使定义路由和其他内容变得容易。要了解更多关于 Express 的信息并对其有一个基本的了解,请访问 - ExpressJS 教程。

广告