摘要: ObjectEchoServer ObjectEchoServerHandler ObjectEchoClient ObjectEchoClientHandler 阅读全文
posted @ 2018-10-30 09:30 遥远2 阅读(142) 评论(0) 推荐(0) 编辑
摘要: StringRedisTemplate: 1)、只能存储string类型的值,因此不能存储如对象 2)、序列化为string,如: RedisTemplate: 1)、可以存储任意类型,含对象。 2)、序列化采用jdk的,如: 在java中能正确读取,但是在client中就是jdk序列化后的字符了, 阅读全文
posted @ 2018-10-30 09:30 遥远2 阅读(987) 评论(0) 推荐(0) 编辑
摘要: 总结: String类型的value(string/list/set/hash)使用StringRedisTemplate 其他类型的value(string/list/set/hash/object)使用RedisTemplate(GenericFastJsonRedisSerializer,va 阅读全文
posted @ 2018-10-30 09:30 遥远2 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 本节大纲: 1、Handler的执行顺序2、自定义二进制协议(每条完整数据的组成),从而解决拆包和粘包。3、通过为每个channel创建新的handler,从而解决即使handler中使用全局变量,也可以避免竞态条件。 1、Handler的执行顺序。 2、自定义二进制协议(每条完整数据的组成),从而 阅读全文
posted @ 2018-10-30 09:29 遥远2 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 从InBound里读取的ByteBuf要手动释放,还有自己创建的ByteBuf要自己负责释放。这两处要调用这个release方法。 write Bytebuf到OutBound时由netty负责释放,不需要手动调用release。 http://netty.io/wiki/reference-cou 阅读全文
posted @ 2018-10-30 09:29 遥远2 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 问题:我写了MyDecoder which extends ByteToMessageDecoder,单线程没问题,但是多线程时,报'the handler should be sharable'。查看ByteToMessageDecoder,发现其不能被@sharable。 解决: 在Channe 阅读全文
posted @ 2018-10-30 09:29 遥远2 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 客户端: 或者 或者 服务端: 1、继承SimpleChannelInboundHandler或ChannelInboundHandlerAdapter的server端 如果是短链接,必须在服务端关闭该channel。此时,才能通知到客户端的chanel.future.close()方法。 2、需要 阅读全文
posted @ 2018-10-30 09:29 遥远2 阅读(1163) 评论(0) 推荐(0) 编辑
摘要: 比特币就有用 C++ 实现的 Bitcoin Core,还有用 Java 实现的 BitcoinJ; 以太坊也有用 Go 语言实现的 go-ethereum,也有用 C++ 实现的 go-ethereum,还有用 Java 实现的 Ethereum(J)。 阅读全文
posted @ 2018-10-30 09:29 遥远2 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 一、DiscardClientHandler 1、发送消息 2、接收服务器返回的消息。由于服务端没有返回消息,所以此处忽略。 3、发送消息后,根据结果的处理。如果成功,继续发送消息;否则,抛出异常,关闭channel。 二、DiscardClient 运行结果: 服务端: 客户端: 阅读全文
posted @ 2018-10-30 09:28 遥远2 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 本节介绍TIME协议。该协议与前边的discard协议和echo协议的不同点在于:1、服务端主动发送消息给到客户端,所以需要channelActive()方法。2、发送的消息是4个字节的int3、不接收来自客户端的任何请求,所以不需要channelRead()方法。4、一旦消息发送完毕,就关闭该co 阅读全文
posted @ 2018-10-30 09:28 遥远2 阅读(124) 评论(0) 推荐(0) 编辑