ha
Search…
关于本socket.io中文文档
socket.IO website
1 指南(Guide)
2 文档(Docs)
2.1 概览
2.2 房间和命名空间
2.3 从0.9迁移版本 migrating_from_0.9
2.3.1 身份验证差异
2.3.2 日志差异
2.3.3 快捷方式
2.3.4 配置差异
2.3.5 解析器/协议差异
2.4 多路节点使用
2.5 日志和调试
2.6 emit 备忘单
2.7 内部概述
2.8 faq
3 客户端-API(Client-API)
4 服务端-API(Server-API)
Powered By
GitBook
2.3.5 解析器/协议差异
这只与用其他语言更新socket.io实现、自定义socket.io socket等相关。
差异1 - 数据包编码
解析现在是基于类和异步的。不是返回单个编码字符串,而是使用一个编码数组作为唯一参数对调用回调进行编码。每个编码都应该按顺序写入传输。这更灵活的让二进制数据传输,下面是一个例子:
1
const
encoding
=
parser
.
encode
(
packet
);
2
console
.
log
(
encoding
);
//完全编码的数据包
Copied!
VS:
1
const
encoder
=
new
parser
.
Encoder
();
2
encoder
.
encode
(
packet
,
encodings
=>
{
3
for
(
let
i
=
0
;
i
<
encodings
.
length
;
i
++
){
4
console
.
log
(
encodings
[
i
])
//包的编码部分
5
}
6
})
Copied!
差异2 - 数据包解码
解码将使事情进一步发展,并且是基于事件的。这是因为某些对象(包含二进制)同时在多个部分中进行编码和解码。这个例子应该有助于理解:
1
const
packet
=
parser
.
decode
(
decoding
);
2
console
.
log
(
packet
)
// 要处理的成型socket.io包
Copied!
VS:
1
const
decoder
=
new
parser
.
Decoder
();
2
decoder
.
on
(
'decoded'
,(
packet
)
=>
{
3
console
.
log
(
packet
)
// 要处理的成型socket.io包
4
})
5
6
decoder
.
add
(
encodings
[
0
])
// encodings 是从传输接收的两个编码的数组
7
decoder
.
add
(
encodings
[
1
])
// 添加最后一个元素后,解码器将发出“decoded”
Copied!
Previous
2.3.4 配置差异
Next
2.4 多路节点使用
Last modified
2yr ago
Copy link
Contents
差异1 - 数据包编码
差异2 - 数据包解码