游戏对外服 - 自定义编解码 - WebSocketMicroBootstrapFlow
iohao opened this issue · comments
游戏对外服支持自定义统一交互协议 see #213 。
这里介绍 WebSocketMicroBootstrapFlow 相关的编解码自定义。
方法一,通过重写 pipelineCodec
重写 WebSocketMicroBootstrapFlow pipelineCodec 方法,这种方式最灵活,可完全自定义。
DefaultExternalServerBuilder builder = ...;
builder.setting().setMicroBootstrapFlow(new WebSocketMicroBootstrapFlow() {
@Override
public void pipelineCodec(PipelineContext context) {
... 省略部分代码
// websocket 编解码
var externalCodec = new YourExternalCodec();
context.addLast("codec", externalCodec);
}
});
方法二,通过重写 createExternalCodec 方法
WebSocketMicroBootstrapFlow 新增 createExternalCodec 方法,用于创建开发者自定义的编解码;其他配置则使用 pipelineCodec 中的默认配置。
DefaultExternalServerBuilder builder = ...;
builder.setting().setMicroBootstrapFlow(new WebSocketMicroBootstrapFlow() {
@Override
protected MessageToMessageCodec<BinaryWebSocketFrame, BarMessage> createExternalCodec() {
return new YourExternalCodec();
}
});