我找文档的时候说,可以修改longlink_packer.cc 文件来自定义协议头,但是我还是无法快速使用。
mwngjboj1#
自定义后直接使用 python build_android.py进行编译即可
vawmfj5a2#
发现自定义协议也不必要,可以使用把协议定义成默认的样子。但是疑问又出来了
struct __STNetMsgXpHeader { uint32_t head_length; uint32_t client_version; uint32_t cmdid; uint32_t seq; uint32_t body_length; };
seq 是起什么作用呢?cmdid 只有一级命令,如果要做二级分类怎么弄呢?
看到下面一句话,不知道是否能确定seq 的作用mars长连的请求包和回包的对应关系的条件是seq一样,所以服务器对请求的回应要保证seq一样
v64noz0r3#
你好,看到过你的几个回复,想问下两个问题,自定义后直接使用 python build_android.py进行编译即可这里会出现无法调用makesureAuth 的问题,我看c+的是有string参数的,但是java是无参方法
2、sample的代码,服务起来后会直接连接到服务器,同时发送心跳,然后我发送一个消息服务器会不处理,原样返回心跳,消息但是消息不会在onPush中出现,且服务器说客户端马上把socket关闭了。
不知道这里的流程要怎么样才行?
epggiuax4#
mars长连的请求包和回包的对应关系的条件是seq一样,所以服务器对请求的回应要保证seq一样. 是这个作用。
cmdid 就能做分类了,类似 url, 什么场景中需要有二级分类?
mzillmmw5#
答: 服务器也要回复心跳。 而且请求消息必须直接回复,不能丢到 push 中,不然客户端确实会关闭 socket 的
bkkx9g8r6#
好的,谢谢回复c++这个我会尝试改一下
gstyhher7#
@garryyan 因为未来好区分,我一开始就使用了二级分类。
例如:
enum ServiceId { //系统服务,心跳之类的 SYSTEM = 0; //用户服务 USER = 1; //聊天 CHAT = 2; } //命令Id是二级,但是又独立出来,所以命名 = ServiceId_CommentId enum CommandId { USER_LOGIN_REQ = 0; USER_LOGIN_RESP = 1; }
使用了short + short = int 解决了这个问题。
7条答案
按热度按时间mwngjboj1#
自定义后直接使用 python build_android.py进行编译即可
vawmfj5a2#
发现自定义协议也不必要,可以使用把协议定义成默认的样子。但是疑问又出来了
seq 是起什么作用呢?cmdid 只有一级命令,如果要做二级分类怎么弄呢?
看到下面一句话,不知道是否能确定seq 的作用
mars长连的请求包和回包的对应关系的条件是seq一样,所以服务器对请求的回应要保证seq一样
v64noz0r3#
你好,看到过你的几个回复,想问下两个问题,
自定义后直接使用 python build_android.py进行编译即可
这里会出现无法调用makesureAuth 的问题,我看c+的是有string参数的,但是java是无参方法
2、sample的代码,服务起来后会直接连接到服务器,同时发送心跳,然后我发送一个消息
服务器会不处理,原样返回心跳,消息
但是消息不会在onPush中出现,且服务器说客户端马上把socket关闭了。
不知道这里的流程要怎么样才行?
epggiuax4#
发现自定义协议也不必要,可以使用把协议定义成默认的样子。但是疑问又出来了
seq 是起什么作用呢?cmdid 只有一级命令,如果要做二级分类怎么弄呢?
看到下面一句话,不知道是否能确定seq 的作用
mars长连的请求包和回包的对应关系的条件是seq一样,所以服务器对请求的回应要保证seq一样
mars长连的请求包和回包的对应关系的条件是seq一样,所以服务器对请求的回应要保证seq一样. 是这个作用。
cmdid 就能做分类了,类似 url, 什么场景中需要有二级分类?
mzillmmw5#
你好,看到过你的几个回复,想问下两个问题,
自定义后直接使用 python build_android.py进行编译即可
这里会出现无法调用makesureAuth 的问题,我看c+的是有string参数的,但是java是无参方法
2、sample的代码,服务起来后会直接连接到服务器,同时发送心跳,然后我发送一个消息
服务器会不处理,原样返回心跳,消息
但是消息不会在onPush中出现,且服务器说客户端马上把socket关闭了。
不知道这里的流程要怎么样才行?
答: 你先暂时手动修改 java 代码和 C++对应起来,可以忽略那个参数,我找时间也修改下
服务器会不处理,原样返回心跳,消息
但是消息不会在onPush中出现,且服务器说客户端马上把socket关闭了。
答: 服务器也要回复心跳。 而且请求消息必须直接回复,不能丢到 push 中,不然客户端确实会关闭 socket 的
bkkx9g8r6#
好的,谢谢回复
c++这个我会尝试改一下
gstyhher7#
@garryyan 因为未来好区分,我一开始就使用了二级分类。
例如:
使用了short + short = int 解决了这个问题。