private IByteBuffer GetBuffer(IChannel channel, TMessage message) { var buff = channel.Allocator.Buffer(message.Length); IBufferWriter writer = NettyBufferManager.CreateBufferWriter(buff); this._codecs.Encode(message, writer); return(buff); }
/// <summary> /// 发送心跳包 /// </summary> /// <param name="ctx"></param> /// <param name="state"></param> /// <returns></returns> public Task SendHeartbeatAsync(IChannelHandlerContext ctx, IdleStateEvent state) { //获取心跳包的打包内容 TMessage message = this._msgCodecs.HeartbeatMessage(); var heartbeatBuff = ctx.Allocator.Buffer(message.Length); var bufferWritter = NettyBufferManager.CreateBufferWriter(heartbeatBuff); this._msgCodecs.Encode(message, bufferWritter); return(ctx.WriteAndFlushAsync(heartbeatBuff)); }