自定义长连加解包

长连的加包是在 Req2Buf 之后进行的,也即长连的 body 是 Req2Buf 得到的数据,长连的头部是加包上去的。加解包自定义实现可以在这两个函数中进行实现:

  1. void (*longlink_pack)(uint32_t _cmdid, uint32_t _seq, const AutoBuffer& _body, const AutoBuffer& _extension, AutoBuffer& _packed, longlink_tracker* _tracker);
  2. int (*longlink_unpack)(const AutoBuffer& _packed, uint32_t& _cmdid, uint32_t& _seq, size_t& _package_len, AutoBuffer& _body, AutoBuffer& _extension, longlink_tracker* _tracker);

同时这里还可以针对心跳包(noop)进行自定义,默认的心跳包是只有一个长连接头部,没有 body 部分。

  1. uint32_t (*longlink_noop_cmdid)();
  2. bool (*longlink_noop_isresp)(uint32_t _taskid, uint32_t _cmdid, uint32_t _recv_seq, const AutoBuffer& _body, const AutoBuffer& _extend);
  3. void (*longlink_noop_req_body)(AutoBuffer& _body, AutoBuffer& _extend);
  4. void (*longlink_noop_resp_body)(const AutoBuffer& _body, const AutoBuffer& _extend);