- Socket.IO 教程
- Socket.IO - 首页
- Socket.IO - 概述
- Socket.IO - 环境
- Socket.IO - Hello world
- Socket.IO - 事件处理
- Socket.IO - 广播
- Socket.IO - 命名空间
- Socket.IO - 房间
- Socket.IO - 错误处理
- Socket.IO - 日志记录和调试
- Socket.IO - 内部机制
- Socket.IO - 聊天应用
- Socket.IO 有用资源
- Socket.IO - 快速指南
- Socket.IO - 有用资源
- Socket.IO - 讨论
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 教程。