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 可以轻松定义路由和其他内容。