跳到主要内容

自定义对外服协议

介绍

ExternalMessage 是玩家与游戏服务器交互的对外统一协议。 玩家(游戏客户端)在发起请求时,默认情况下是通过 ExternalMessage 来进行交互的。

如果没有特殊情况,建议使用框架默认提供的 ExternalMessage。 因为没有使用到的字段 Protocol Buffer 会压缩数据,用多少占多少。

ExternalMessage 是框架提供的一种与外部交互的统一协议,也是默认推荐的方式。 注意,这里说的是默认推荐方式,并不是唯一方式,开发者可以自定义这部分内容的。 也就是说,可以不使用 ExternalMessage 与外部联系,而是使用一种自定义的统一协议。

比如你正打算开发一个物联网相关的、或者说其他的项目。想简化对外的统一协议,协议内容只需要路由与业务对象就足够了。如下:

syntax = "proto3";
package com.your.message;

message YourExternalMessage {
int32 cmd_merge = 1;
bytes data = 2;
}

使用 YourExternalMessage 来代替默认的 ExternalMessage,以满足项目的特殊需要。

自定义统一的交互协议只需要两步

  1. 定义统一的交互协议
  2. 重写编解码部分

如何扩展

see WebSocketExternalCodec.java、TcpExternalCodec.java