Пример #1
0
        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);
        }
Пример #2
0
        /// <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));
        }