Socket连接Demo&&长连接Demo

2017-10-22  本文已影响0人  第七感_12d9

一、Socket Demo

netty可以用来作为socket开发,以rpc的方式,支持自定义协议,这很适用于微服务之间的通信。以一个简单的聊天程序为例:

1.Server端:

(1)主函数

(2)Handler

(3)Initializer

注:netty会自动移除断开的连接,因此无需在channelGroup中remove这个channel

2.Client端:

(1)主函数

(2)Handler

(3)Initializer

二、长连接Demo

WebSocket是长连接,全双工,基于HTTP,亦可用于非浏览器。

1.Server端:

(1)主函数

(2)Handler

(3)Initializer

2.Client端:

注:客户端和服务端建立了长连接,如果客户端开启了飞行模式或者强制关机,handlerRemoved不会被调用,即服务端无法感知客户端已经断开连接-->需要心跳

心跳主要依赖:IdleStateEvent

通过pipeline.addLast(newIdleStateHandler(5,7,3, TimeUnit.SECONDS));//在指定的时间没有读/写/读写,就触发事件

上一篇 下一篇

猜你喜欢

热点阅读