pomelo 协议

本文详细分析了Pomelo协议中的WebSocket握手过程,包括客户端和服务器的握手交互,以及Pomelo数据打包、解包机制。客户端首先发送握手包,服务器响应并返回心跳间隔、字典和protobuf定义,接着发送握手确认完成握手。Pomelo的package由header和body组成,Message包含flag、message id和route。服务端通过hybridconnector和WebSocketServer处理连接和升级,处理器负责处理握手、心跳和消息响应。
摘要由CSDN通过智能技术生成


分析的是hybridconnector,使用的chatofpomelo-websocket(pomelo为0.7.0)
参考:https://github.com/NetEase/pomelo/wiki/Pomelo-通讯协议
http://cnodejs.org/topic/51395fd0df9e9fcc5882576c


客户端握手:


pomelo在init时候,创建WebSocket连接,并定义onopen onmessage回调,
连接建立后,onopen被回调,客户端首先发送握手包var obj = Package.encode(Package.TYPE_HANDSHAKE, Protocol.strencode(JSON.stringify(handshakeBuffer)));
参数为,如果version在客户端有缓存,将使用缓存{
  'sys': {
    'version': '1.1.1',
    'type': 'js-websocket'
  }, 
  'user': {
    // any customized request data
  }
}
这个方法中,package格式为type,length,body,传入的参数为type和body,


服务端发回message,在onmessage中处理服务器到客户端的握手响应,服务端发回的参数
{
  'code': 200,          // result code
  'sys': {
    'heartbeat': 3,     // heartbeat interval in second
    'dict': {},         // route dictionary
    'protos': {}        // protobuf definition data
  }, 
  'user': {
    // any customized response da
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值