Egret社区
1银子
        由于之前的服务器是端游服务器,直接是tcp封装的协议,但是h5使用了websocket协议,这样就导致原来的协议需要修改,按照websocket的协议栈解析了数据,出现了两种情况:
1.当客户端发送文本数据时,服务器能收到正确的文本数据和文本数据长度
2.当客户端发送二进制数据时,可以收到正确的二进制长度,但是二进制的类容不正确。(设置egret.WebSocket.TYPE_BINARY;   )

最佳答案

查看完整内容

这个暂时不会动了。你们改下发送的时候改下设置吧
分享到 :
0 人收藏

8 个回复

倒序浏览
yjtx  官方团队 | 2017-1-10 13:12:42
yangenliang 发表于 2017-1-10 15:16
不知道大家有没有遇到过,经过多次对比收到的数据,发现了原因,问题出在:更改或读取数据的字节顺序;egre ...

这个暂时不会动了。你们改下发送的时候改下设置吧
yjtx  官方团队 | 2017-1-10 15:09:29
网上搜下如何解析获取到的二进制数据吧。
yangenliang  登堂入室 | 2017-1-10 15:15:43
不知道大家有没有遇到过,经过多次对比收到的数据,发现了原因,问题出在:更改或读取数据的字节顺序;egret.Endian.BIG_ENDIAN 或 egret.Endian.LITTLE_ENDIAN。由于服务器我们是用的c++,所以是LITTLE_ENDIAN, 但是白鹭默认是BIG_ENDIAN ,不知道能否修改默认为LITTLE_ENDIAN
yangenliang  登堂入室 | 2017-1-10 15:16:13
不知道大家有没有遇到过,经过多次对比收到的数据,发现了原因,问题出在:更改或读取数据的字节顺序;egret.Endian.BIG_ENDIAN 或 egret.Endian.LITTLE_ENDIAN。由于服务器我们是用的c++,所以是LITTLE_ENDIAN, 但是白鹭默认是BIG_ENDIAN ,不知道能否修改默认为LITTLE_ENDIAN
ibundy  登堂入室 | 2017-1-12 00:51:58 来自手机
protobuf.js使用pb进行前后协议数据,不存在问题。如果pb协议体以为的扩展头数据需要按位读取写入。比如int用高低位分开写
yangenliang  登堂入室 | 2017-1-12 01:05:45
ibundy 发表于 2017-1-12 00:51
protobuf.js使用pb进行前后协议数据,不存在问题。如果pb协议体以为的扩展头数据需要按位读取写入。比如int ...

前面长度使用了int,后面数据使用了pb,但是现在pb生成第三方库生成的文件都是空的,你能看看我的另外一个帖子么?
ibundy  登堂入室 | 2017-1-12 01:15:18 来自手机
int部分按位读写,就没问题。刚看了,你说已经找到问题
yangenliang  登堂入室 | 2017-1-12 11:21:31
ibundy 发表于 2017-1-12 01:15
int部分按位读写,就没问题。刚看了,你说已经找到问题

以前没有遇到大端小端的问题,所有没有在意,这次才知道两种不一样的实现方式,自己设置就可以了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2016 Comsenz Inc.

返回顶部