摘要:
websocket中,可以支持双向的数据通信。其中所有的数据格式,都是以帧的形式来传递。 initializer handler 页面例子: 阅读全文
摘要:
netty可支持空闲检测的处理器,用于心态检测,当服务器端超出等待时间,没发生事件时,会触发handler中的方法 userEventTriggered。 initializer handler 阅读全文
摘要:
代码基于第二个例子,支持多客户端的连接,在线聊天。 主要思路: 连接建立时,在服务器端,保存channel 对象,当有新的客户端加入时,遍历保存的channel集合,向其他客户端发送加入消息。 当一个客户端发送消息时,在服务器端,遍历channel集合,判断是否为发送者,来修改发送内容,如: XX说 阅读全文
摘要:
第一个例子中,建立了http的服务器端,可以直接使用curl命令,或者浏览器直接访问。 在第二个例子中,建立一个netty的客户端来主动发送请求,模拟浏览器发送请求。 这里先启动服务端,再启动客户端,启动客户端后,在 channelActive 方法中,主动向服务器端发送消息,服务器端channel 阅读全文
摘要:
用netty来启动一个简单的可处理http请求的服务器。 依照前面写的使用netty的过程。贴上代码 server Initlalizer Handler 阅读全文
摘要:
netty中的例子,基本模式都是:server -> Initializer -> Handler 。 在server中去启动线程,打开端口,设置initializer,和一些启动的参数配置。 在Initializer,主要是负责添加handler处理链。可以获得channel对象。 在handle 阅读全文
摘要:
通过编写一个客户端和服务器端的例子来熟悉selector的使用 服务端逻辑: 1. 绑定一个端口号2. channel注册到selector中3. 用死循环来监听如果有时间发生,遍历selectionKey set4. 判断发生的事件类型,前面会注册accept事件,如果发生accept事件,那么注 阅读全文
摘要:
下面的例子,说明了,nio中的三大核心类的基本使用。buffer,channel,selector 阅读全文
摘要:
nio和bio的区别 bio: nio: nio编程的常规步骤 从channel中获取的任何数据,都必须经过buffer来存放。 Buffer 的使用 buffer中的3个核心变量,和一个不常用的变量(mark): 、 直接内存映射,零拷贝: 常规的java流操作过程: buffer有一个直接内存映 阅读全文