Socket.IO - 内部构件

Socket.IO - 内部构件 首页 / Socket.io入门教程 / Socket.IO - 内部构件

在本章中,我们将讨论Fallbacks,使用Socket.IO的连接,事件和消息。

Fallbacks

Socket.IO具有许多基础的传输机制,可以处理由于跨浏览器问题,WebSocket实现,防火墙,端口阻塞等而引起的各种约束。

无涯教程网

尽管W3C已为WebSocket API定义了规范,但仍缺乏实现。 Socket.IO为我们提供了可以处理此类问题的Fallbacks机制。如果我们使用本机API开发应用,则必须自己实现Fallbacks。 Socket.IO按照以下顺序涵盖了大量的故障预置-

  • WebSockets
  • FlashSocket
  • XHR long polling
  • XHR multipart streaming
  • XHR polling
  • JSONP polling
  • iframe

Socket.IO连接

Socket.IO连接从握手开始,这使握手成为协议的特殊部分,除了握手之外,协议中的所有其他事件和消息都通过Socket传输。

链接:https://www.learnfk.comhttps://www.learnfk.com/socket.io/socket.io-internals.html

来源:LearnFk无涯教程网

Socket.IO旨在与Web应用程序一起使用,因此假定这些应用程序将始终能够使用HTTP,正是由于这一原因,Socket.IO握手是通过HTTP使用握手URI(传递给connect方法)上的POST请求进行的。

Events和messages

WebSocket本机API仅发送消息, Socket.IO在这些消息上提供了附加层,它使我们可以创建事件,并通过分离发送的不同类型的消息来再次帮助我们轻松开发应用程序。

我们有一个官方的网络客户端API,对于其他客户端,其他应用程序客户端也可以通过以下步骤使用Socket.IO。

步骤1  - 需要使用上面讨论的相同连接协议创建连接。

步骤2  - 消息的格式必须与Socket.IO指定的格式相同。这种格式使Socket.IO可以确定消息的类型以及消息中发送的数据以及一些对操作有用的元数据。

消息格式是-

[type] : [id ('+')] : [endpoint] (: [data]

上面命令中的参数说明如下-

  • type           -  是一位整数,指定其是什么类型的消息。

  • ID              - 是消息ID,是用于确认的增量整数。

  • endpoint  -  是要将消息传递到的Socket端点。

  • data           -  是要传递到Socket的关联数据。对于消息,将其视为纯文本,对于其他事件,将其视为JSON。

在下一章中,我们将在Socket.IO中编写一个聊天应用程序。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

分布式技术原理与算法解析 -〔聂鹏程〕

DDD实战课 -〔欧创新〕

Vim 实用技巧必知必会 -〔吴咏炜〕

Linux内核技术实战课 -〔邵亚方〕

Django快速开发实战 -〔吕召刚〕

说透区块链 -〔自游〕

程序员的测试课 -〔郑晔〕

云原生架构与GitOps实战 -〔王炜〕

手把手带你写一个MiniSpring -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)