银行长连接机制及远程调用机制

银行长连接机制及远程调用机制

1.走io阻塞的socket。主要是客户端与服务端建立长连接之后,传输的格式及标准,我是按照socket读取,先用8位存储消息的大小,表示消息头。后面存储消息体,这样就解决了沾包的一些问题。但是在正式环境,还会出现分包的问题,解决办法是用递归的方式读取剩下的消息体。

2走nio的无阻塞的事件驱动。结合neety的封装。实现SimpleChannelInboundHandler。在自己的Handler里处理读取事件。

实现的几点注意:

一旦长练终止,由客户端销毁连接,发起重连机制。服务端只是关闭连接。

这种机制主要合适双方发送消息,在这种机制上可以延伸成远程调用机制。实现服务端通过命令来让客户端执行某一方法。主要实现的改变点是:

数据格式:

   JSON字符串格式传输
   {
    "merchantNo":"XXXXX",
    "data":{},
    "seq":"XXXXX",
    "refSeq":"XXXXX",
    "funcName":"XXXXX"
   }

  注意:
  发送方每次发送的消息seq为随机生成的32位uuid,每次发送需要携带唯一标识seq
 
  发送方如果是返回给服务端消息时,把上次服务端发送的seq赋值给此次发送refSeq
 
  funcName的定义:
  外卖消息   doTakeaway
  心跳消息   doHeartbeat
  关键消息   doCoreInfo
  外卖回写   doReTakeaway
  日志上传   doUploadLog
  日志回写   doReUploadLog

 

 

 

 

转载于:https://my.oschina.net/u/3246951/blog/1504051

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值