方式:
- Ajax轮询:前端使用ajax不断访问后台(异步);一般适用于小项目或者后台管理;
- Long pull:阻塞式请求;如果服务器不响应便会阻塞;
- webSocket:不同于上面两种方式,webSocket使用了http协议完成了一小部分的握手,是一种持久化协议;只需要建立一次请求,服务端就可以推送到客户端;
实现步骤:
- 后台代码
- 建立一个package命名为webSocket,在webSocket包中建立server启动类WSServer.java;
import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; public class WSServer { public static void main(String[] args) throws Exception { NioEventLoopGroup mainGroup = new NioEventLoopGroup(); NioEventLoopGroup subGroup = new NioEventLoopGroup(); try { ServerBootstrap server = new ServerBootstrap(); server.group(mainGroup,subGroup) .channel(NioServerSocketChannel.class) .childHandler(null); ChannelFuture future = server.bind(8088).sync(); future.channel().closeFuture().sync(); } finally { mainGroup.shutdownGracefully(); subGroup.shutdownGracefully(); } } } - 在webSocket包中建立server初始化类WSServerInitializer.java;
package com.gyzl.netty.webSocket; import io.netty.channel.ChannelInitializer; i
- 建立一个package命名为webSocket,在webSocket包中建立server启动类WSServer.java;

本文介绍了基于Netty实现WebSocket实时通信的方案,包括Ajax轮询、Long pull和WebSocket的对比。详细阐述了WebSocket的特性,以及使用Netty创建WebSocket服务器的步骤,包括创建启动类、初始化类和处理器类。同时,提到了前端连接WebSocket的核心API和生命周期方法,并提供了使用Hbuilder创建HTML页面的提示,最后展示了测试过程。
最低0.47元/天 解锁文章
809

被折叠的 条评论
为什么被折叠?



