📜  Socket.IO-概述

📅  最后修改于: 2020-11-02 04:51:26             🧑  作者: Mango


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

实时应用

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

实时应用的一些例子是-

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

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

  • 协作应用程序-谷歌文档之类的应用程序,允许多个人同时更新相同的文档并将更改应用于所有人员的实例。

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

为什么选择Socket.IO?

传统上,用诸如LAMP(PHP)之类的流行Web应用程序堆栈编写实时应用程序非常困难。它涉及轮询服务器的更改,跟踪时间戳,并且比预期的要慢得多。

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

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

ExpressJS

我们将使用express来构建Socket.IO将使用的Web服务器。可以使用任何其他节点服务器端框架甚至节点HTTP服务器。但是,ExpressJS使定义路线和其他内容变得容易。要阅读有关express的更多信息并获得基本知识,请转至ExpressJS教程