博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Socket.IO 中文笔记
阅读量:5123 次
发布时间:2019-06-13

本文共 1038 字,大约阅读时间需要 3 分钟。

Socket.IO 由两部分组成

  1. 与Node.JS HTTP Server集成(或安装)的服务器
  2. 在浏览器端加载的客户端库

主要特性

可靠性

因为防火墙会关闭长时间处于非活跃状态的连接而导致socket连接中断,通过心跳机制可以保持长连接。

自动重新连接支持

除非得到指示,客户端会一直尝试重新连接到服务器,直到连接成功

断线检测

在Engine.IO层实现心跳机制,允许服务器和客户端知道另一个机制何时不响应

通过在服务器和客户端上设置定时器来实现该功能,在连接握手期间共享超时值(pingInterval和pingTimeout参数)

二进制支持

可以发出任何可序列化的数据结构

多路复用支持

为了在应用程序中创建关注点分离(例如,每个模块或基于权限),Socket.IO允许您创建多个命名空间,这些命名空间将充当单独的通信通道,但将共享相同的底层连接。

房间支持

在每个命名空间中,您可以定义套接字可以加入和离开的任意通道,称为Rooms。 然后,您可以广播到任何给定的房间,到达已加入它的每个套接字。

这是一个非常有用的功能,可以将通知发送给一组用户,或者发送给连接在多个设备上的给定用户。

这些功能带有一个简单方便的API,如下所示:

io.on('connection', function(socket){  socket.emit('request', /* */); // emit an event to the socket  io.emit('broadcast', /* */); // emit an event to all connected sockets  socket.on('reply', function(){ /* */ }); // listen to the event});

Socket.IO不是WebSocket实现。 尽管Socket.IO确实在可能的情况下使用WebSocket作为传输,但它会为每个数据包添加一些元数据:数据包类型,命名空间和需要消息确认时的确认ID。 这就是为什么WebSocket客户端无法成功连接到Socket.IO服务器,并且Socket.IO客户端也无法连接到WebSocket服务器。

Socket.IO允许您发出和接收自定义事件。 除了连接,消息和断开连接,您还可以发出自定义事件

转载于:https://www.cnblogs.com/goOtter/p/10113246.html

你可能感兴趣的文章
析构函数 Destructor
查看>>
【leetcode】Insert Interval(hard)★
查看>>
190. Reverse Bits
查看>>
jquery 图片延迟加载
查看>>
JavaScript正则表达式-反向引用
查看>>
允许ubuntu下mysql远程连接
查看>>
【Akka】在并发程序中使用Future
查看>>
设计模式之:代理模式
查看>>
1-4鸡兔同笼
查看>>
VC2010中"Include Directories" 和 "Additional Include Directories"的区别
查看>>
Jsp上传组件Smartupload介绍
查看>>
alias 和 unalias 命令
查看>>
[转]ubuntu 安装源替换-阿里云
查看>>
Spring IoC
查看>>
com.mysql.cj.jdbc.exceptions.CommunicationsException
查看>>
[ 原创 ]Centos 7.0下安装 Tomcat8.5.15
查看>>
最大密度子图建图 POJ 3155
查看>>
LPSTR LPTSTR
查看>>
排序算法-快速排序
查看>>
【Java】基础篇-排序二叉树
查看>>