一 点睛
WebSocket 是 HTML5 的一种协议,它可以实现浏览器与服务器全双工通信。Websocket 是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手,握手成功后,数据就可以直接使用 TCP 通道传输,之后就与 HTTP 无关。简单地讲,开始握手需要借助 HTTP 请求完成,之后就会升级为 WebSocket 协议。
本篇开发一个基于 WebSocket 协议的长连接通信。
采用 Netty 作为长连接的服务端,使用浏览器作为客户端,二者交互图如下。
二 服务端
1 主程序类
package netty.websocket;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
public class MyNettyServerTest {
public static void main(String[] args) {
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup(