umx压缩
Xebo根据配置自动对打消息包进行压缩传输.
压缩特性配置如下:
<!-- 传输属性配置 -->
<transport>
<!--是否自动压缩,阈值.单位:kb -->
<auto_compress enable="true" valve="1024"/>
</transport>
默认自动压缩,阈值64k.
umx.js对压缩支持
var compress_threshold_ = 64*1024; ///< 超过该值,自动压缩.单位:字节
function umx() {
this.serialize = function() {
head.totalLen = offset;
/*
if (head.totalLen>compress_threshold_) {
用zlib.js压缩消息体
head.totalLen = 头长度+压缩后的消息体长度
}
*/
wb = _buffer.slice(0);
head.serialize(wb);
};
this.unserialize = function(buffer) {
var offset = 0;
if (head.unserialize(buffer)==-1)
return -1;
if (head.totalLen>buffer.length)
return -2;
offset += head.calcSize();
/*
///< 如果消息是压缩的则解压消息
///< 解压从head之后开始,解压数据长度:head.totalLen-head.calcSize()
if (head.MsgAttr&MsgAttr.COMPRESS_MASK) {
用zlib.js解压
重构buffer:head+解压后的数据
}
*/
};
};