如何发包并处理
在 seer.js 中 有 4个用于发包的函数
game_send_recv_text 发送文本包 ,返回 promise 类 resolve返回的数据 PackHeadInfo
game_send_recv 发送arraybuffer包 返回 promise 类 resolve返回的数据 PackHeadInfo
game_send_text 发送文本包
game_send 发送arraybuffer包
返回的 PackHeadInfo 包括一下内容
PackHeadInfo.len 字符长度
PackHeadInfo.VERSION 版本
PackHeadInfo.cmdid 包命令名ID
PackHeadInfo.userid 用户id
PackHeadInfo.result 包结果
PackHeadInfo.Data_De 空,由于通信限制,此为空,重新打包后为包体 arraybuffer 格式
PackHeadInfo.Data_En 空,由于通信限制,此为空,重新打包后为总包 arraybuffer 格式
PackHeadInfo.Data_text 文本包,字符串
如果需要Data_De,或 Data_En 可以使用 GetHeadInfo_text(PackHeadInfo.Data_text) 重新打包PackHeadInfo
同时使用 new ByteArray(arraybuffer); 可以把arraybuffer打包为ByteArray,方便处理字节流
例子 这里是发送一个文本包,并且获得返回包 获得用户的兑换钻石数量
这里是点击id为 postMessage 触发发包
document.getElementById('postMessage').addEventListener('click', function() {
//这里是发包,发包完毕后返回 packheadinfo
game_send_recv_text('00000021310000B3DE00000000000001E90000000100000433').then(
(PackHeadInfo) => {
//返回的packheadinfo 需要重新用 GetHeadInfo_text 打包一下
//否则PackHeadInfo.Data_De PackHeadInfo.Data_En均为空
PackHeadInfo= GetHeadInfo_text(PackHeadInfo.Data_text)
//提示
alert('收到了包:'+PackHeadInfo.Data_text)
//转 ByteArray
var param = new ByteArray(PackHeadInfo.Data_De);
//读取第一个参 无用
param.readUnsignedInt()
//读取第二参数 ,钻石数量
var num =param.readUnsignedInt()
//提示
alert('你兑换过:'+num+' 钻石')
})
最后修改时间: 2 年前