From de31e91aa2f38a717f2d4640a3197580ec1807a7 Mon Sep 17 00:00:00 2001
From: 钟日健 <5689795+arsn@user.noreply.gitee.com>
Date: Thu, 19 May 2022 11:23:51 +0800
Subject: [PATCH] 关闭websckot

---
 src/main/java/org/springblade/modules/nettyServer/ChannelMap.java                    |   72 +-
 src/main/java/org/springblade/modules/runner/MyRunner.java                           |   48 +-
 src/main/java/org/springblade/modules/webscoket/service/IPushMsgService.java         |   42 
 src/main/java/org/springblade/modules/nettyServer/Server.java                        |  172 +++---
 src/main/java/org/springblade/modules/nettyServer/NettyConfig.java                   |   90 +-
 src/main/java/org/springblade/modules/webscoket/WebSocketHandler.java                |  384 ++++++++--------
 src/main/java/org/springblade/modules/webscoket/index.html                           |  100 ++--
 src/main/java/org/springblade/modules/nettyServer/ServerHandler.java                 |  178 +++---
 src/main/java/org/springblade/modules/webscoket/ChannelSupervise.java                |   76 +-
 src/main/java/org/springblade/modules/webscoket/service/impl/PushMsgServiceImpl.java |   64 +-
 src/main/java/org/springblade/modules/webscoket/WebSocketServer.java                 |  118 ++--
 src/main/java/org/springblade/modules/webscoket/controller/PushMsgController.java    |   60 +-
 12 files changed, 702 insertions(+), 702 deletions(-)

diff --git a/src/main/java/org/springblade/modules/nettyServer/ChannelMap.java b/src/main/java/org/springblade/modules/nettyServer/ChannelMap.java
index 6d7dbc0..1ae50a5 100644
--- a/src/main/java/org/springblade/modules/nettyServer/ChannelMap.java
+++ b/src/main/java/org/springblade/modules/nettyServer/ChannelMap.java
@@ -1,36 +1,36 @@
-package org.springblade.modules.nettyServer;
-
-import io.netty.channel.Channel;
-
-import java.util.concurrent.ConcurrentHashMap;
-
-public class ChannelMap {
-	public static int channelNum=0;
-	private static ConcurrentHashMap<String, Channel> channelHashMap=null;//concurrentHashmap以解决多线程冲突
-
-	public static ConcurrentHashMap<String, Channel> getChannelHashMap() {
-		return channelHashMap;
-	}
-
-	public static Channel getChannelByName(String name){
-		if(channelHashMap==null||channelHashMap.isEmpty()){
-			return null;
-		}
-		return channelHashMap.get(name);
-	}
-	public static void addChannel(String name, Channel channel){
-		if(channelHashMap==null){
-			channelHashMap=new ConcurrentHashMap<String, Channel>(10);
-		}
-		channelHashMap.put(name,channel);
-		channelNum++;
-	}
-	public static int removeChannelByName(String name){
-		if(channelHashMap.containsKey(name)){
-			channelHashMap.remove(name);
-			return 0;
-		}else{
-			return 1;
-		}
-	}
-}
+//package org.springblade.modules.nettyServer;
+//
+//import io.netty.channel.Channel;
+//
+//import java.util.concurrent.ConcurrentHashMap;
+//
+//public class ChannelMap {
+//	public static int channelNum=0;
+//	private static ConcurrentHashMap<String, Channel> channelHashMap=null;//concurrentHashmap以解决多线程冲突
+//
+//	public static ConcurrentHashMap<String, Channel> getChannelHashMap() {
+//		return channelHashMap;
+//	}
+//
+//	public static Channel getChannelByName(String name){
+//		if(channelHashMap==null||channelHashMap.isEmpty()){
+//			return null;
+//		}
+//		return channelHashMap.get(name);
+//	}
+//	public static void addChannel(String name, Channel channel){
+//		if(channelHashMap==null){
+//			channelHashMap=new ConcurrentHashMap<String, Channel>(10);
+//		}
+//		channelHashMap.put(name,channel);
+//		channelNum++;
+//	}
+//	public static int removeChannelByName(String name){
+//		if(channelHashMap.containsKey(name)){
+//			channelHashMap.remove(name);
+//			return 0;
+//		}else{
+//			return 1;
+//		}
+//	}
+//}
diff --git a/src/main/java/org/springblade/modules/nettyServer/NettyConfig.java b/src/main/java/org/springblade/modules/nettyServer/NettyConfig.java
index 99caf34..2954887 100644
--- a/src/main/java/org/springblade/modules/nettyServer/NettyConfig.java
+++ b/src/main/java/org/springblade/modules/nettyServer/NettyConfig.java
@@ -1,45 +1,45 @@
-package org.springblade.modules.nettyServer;
-import io.netty.channel.Channel;
-import io.netty.channel.group.ChannelGroup;
-import io.netty.channel.group.DefaultChannelGroup;
-import io.netty.util.concurrent.GlobalEventExecutor;
-
-import java.util.concurrent.ConcurrentHashMap;
-
-
-public class NettyConfig {
-	/**
-	 * 存储每一个客户端接入进来时的channel对象
-	 */
-	public static ChannelGroup group = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
-
-	/**
-	 * 定义一个channel组,管理所有channel
-	 * GlobalEventExecutor.INSTANCE 是全局的事件执行器,是一个单例
-	 */
-	private static ChannelGroup channelGroup = new DefaultChannelGroup("用户管理组", GlobalEventExecutor.INSTANCE);
-
-	/**
-	 * 存放用户与chanel 的对应的信息,用于给指定用户发送信息
-	 */
-	private static ConcurrentHashMap<String, Channel> userChannelMap = new ConcurrentHashMap<>();
-
-	public NettyConfig() {
-	}
-
-	/**
-	 * 获取用户channel 组
-	 * @return
-	 */
-	public static ChannelGroup getChannelGroup() {
-		return channelGroup;
-	}
-
-	/**
-	 * 获取用户channel map
-	 * @return
-	 */
-	public static ConcurrentHashMap<String, Channel> getUserChannelMap() {
-		return userChannelMap;
-	}
-}
+//package org.springblade.modules.nettyServer;
+//import io.netty.channel.Channel;
+//import io.netty.channel.group.ChannelGroup;
+//import io.netty.channel.group.DefaultChannelGroup;
+//import io.netty.util.concurrent.GlobalEventExecutor;
+//
+//import java.util.concurrent.ConcurrentHashMap;
+//
+//
+//public class NettyConfig {
+//	/**
+//	 * 存储每一个客户端接入进来时的channel对象
+//	 */
+//	public static ChannelGroup group = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
+//
+//	/**
+//	 * 定义一个channel组,管理所有channel
+//	 * GlobalEventExecutor.INSTANCE 是全局的事件执行器,是一个单例
+//	 */
+//	private static ChannelGroup channelGroup = new DefaultChannelGroup("用户管理组", GlobalEventExecutor.INSTANCE);
+//
+//	/**
+//	 * 存放用户与chanel 的对应的信息,用于给指定用户发送信息
+//	 */
+//	private static ConcurrentHashMap<String, Channel> userChannelMap = new ConcurrentHashMap<>();
+//
+//	public NettyConfig() {
+//	}
+//
+//	/**
+//	 * 获取用户channel 组
+//	 * @return
+//	 */
+//	public static ChannelGroup getChannelGroup() {
+//		return channelGroup;
+//	}
+//
+//	/**
+//	 * 获取用户channel map
+//	 * @return
+//	 */
+//	public static ConcurrentHashMap<String, Channel> getUserChannelMap() {
+//		return userChannelMap;
+//	}
+//}
diff --git a/src/main/java/org/springblade/modules/nettyServer/Server.java b/src/main/java/org/springblade/modules/nettyServer/Server.java
index 358aa97..e8c3c51 100644
--- a/src/main/java/org/springblade/modules/nettyServer/Server.java
+++ b/src/main/java/org/springblade/modules/nettyServer/Server.java
@@ -1,86 +1,86 @@
-package org.springblade.modules.nettyServer;
-
-import io.netty.bootstrap.ServerBootstrap;
-import io.netty.channel.*;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.ServerSocketChannel;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
-
-
-public class Server {
-	private int port;
-	private ServerSocketChannel serverSocketChannel;
-
-	public Server(int port){
-		this.port = port;
-		bind();
-	}
-
-	private void bind() {
-		Thread thread = new Thread(new Runnable() {
-			@Override
-			public void run() {
-				//服务端要建立两个group,一个负责接收客户端的连接,一个负责处理数据传输
-				//连接处理group
-				EventLoopGroup boss = new NioEventLoopGroup();
-				//事件处理group
-				EventLoopGroup worker = new NioEventLoopGroup();
-				ServerBootstrap bootstrap = new ServerBootstrap();
-				// 绑定处理group
-				bootstrap.group(boss, worker).channel(NioServerSocketChannel.class)
-					//保持连接数
-					.option(ChannelOption.SO_BACKLOG, 1024)
-					//有数据立即发送
-					.option(ChannelOption.TCP_NODELAY, true)
-					//保持连接
-					.childOption(ChannelOption.SO_KEEPALIVE, true)
-					//处理新连接
-					.childHandler(new ChannelInitializer<SocketChannel>() {
-						@Override
-						protected void initChannel(SocketChannel sc) throws Exception {
-							// 增加任务处理
-							ChannelPipeline p = sc.pipeline();
-							p.addLast(
-//                                        //使用了netty自带的编码器和解码器
-//                                        new StringDecoder(),
-//                                        new StringEncoder(),
-								//心跳检测,读超时,写超时,读写超时
-								//new IdleStateHandler(5, 0, 0, TimeUnit.SECONDS),
-								//自定义的处理器
-								new ServerHandler());
-						}
-					});
-
-				//绑定端口,同步等待成功
-				ChannelFuture future;
-				try {
-					future = bootstrap.bind(port).sync();
-					if (future.isSuccess()) {
-						serverSocketChannel = (ServerSocketChannel) future.channel();
-						System.out.println("服务端启动成功,端口:"+port);
-					} else {
-						System.out.println("服务端启动失败!");
-					}
-
-					//等待服务监听端口关闭,就是由于这里会将线程阻塞,导致无法发送信息,所以我这里开了线程
-					future.channel().closeFuture().sync();
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-				finally {
-					//优雅地退出,释放线程池资源
-					boss.shutdownGracefully();
-					worker.shutdownGracefully();
-				}
-			}
-		});
-		thread.start();
-	}
-
-	public void sendMessage(Object msg){
-		if(serverSocketChannel != null){
-			serverSocketChannel.writeAndFlush(msg);
-		}
-	}
-}
+//package org.springblade.modules.nettyServer;
+//
+//import io.netty.bootstrap.ServerBootstrap;
+//import io.netty.channel.*;
+//import io.netty.channel.nio.NioEventLoopGroup;
+//import io.netty.channel.socket.ServerSocketChannel;
+//import io.netty.channel.socket.SocketChannel;
+//import io.netty.channel.socket.nio.NioServerSocketChannel;
+//
+//
+//public class Server {
+//	private int port;
+//	private ServerSocketChannel serverSocketChannel;
+//
+//	public Server(int port){
+//		this.port = port;
+//		bind();
+//	}
+//
+//	private void bind() {
+//		Thread thread = new Thread(new Runnable() {
+//			@Override
+//			public void run() {
+//				//服务端要建立两个group,一个负责接收客户端的连接,一个负责处理数据传输
+//				//连接处理group
+//				EventLoopGroup boss = new NioEventLoopGroup();
+//				//事件处理group
+//				EventLoopGroup worker = new NioEventLoopGroup();
+//				ServerBootstrap bootstrap = new ServerBootstrap();
+//				// 绑定处理group
+//				bootstrap.group(boss, worker).channel(NioServerSocketChannel.class)
+//					//保持连接数
+//					.option(ChannelOption.SO_BACKLOG, 1024)
+//					//有数据立即发送
+//					.option(ChannelOption.TCP_NODELAY, true)
+//					//保持连接
+//					.childOption(ChannelOption.SO_KEEPALIVE, true)
+//					//处理新连接
+//					.childHandler(new ChannelInitializer<SocketChannel>() {
+//						@Override
+//						protected void initChannel(SocketChannel sc) throws Exception {
+//							// 增加任务处理
+//							ChannelPipeline p = sc.pipeline();
+//							p.addLast(
+////                                        //使用了netty自带的编码器和解码器
+////                                        new StringDecoder(),
+////                                        new StringEncoder(),
+//								//心跳检测,读超时,写超时,读写超时
+//								//new IdleStateHandler(5, 0, 0, TimeUnit.SECONDS),
+//								//自定义的处理器
+//								new ServerHandler());
+//						}
+//					});
+//
+//				//绑定端口,同步等待成功
+//				ChannelFuture future;
+//				try {
+//					future = bootstrap.bind(port).sync();
+//					if (future.isSuccess()) {
+//						serverSocketChannel = (ServerSocketChannel) future.channel();
+//						System.out.println("服务端启动成功,端口:"+port);
+//					} else {
+//						System.out.println("服务端启动失败!");
+//					}
+//
+//					//等待服务监听端口关闭,就是由于这里会将线程阻塞,导致无法发送信息,所以我这里开了线程
+//					future.channel().closeFuture().sync();
+//				} catch (Exception e) {
+//					e.printStackTrace();
+//				}
+//				finally {
+//					//优雅地退出,释放线程池资源
+//					boss.shutdownGracefully();
+//					worker.shutdownGracefully();
+//				}
+//			}
+//		});
+//		thread.start();
+//	}
+//
+//	public void sendMessage(Object msg){
+//		if(serverSocketChannel != null){
+//			serverSocketChannel.writeAndFlush(msg);
+//		}
+//	}
+//}
diff --git a/src/main/java/org/springblade/modules/nettyServer/ServerHandler.java b/src/main/java/org/springblade/modules/nettyServer/ServerHandler.java
index e21967e..c47d3ee 100644
--- a/src/main/java/org/springblade/modules/nettyServer/ServerHandler.java
+++ b/src/main/java/org/springblade/modules/nettyServer/ServerHandler.java
@@ -1,89 +1,89 @@
-package org.springblade.modules.nettyServer;
-
-import com.alibaba.fastjson.JSONObject;
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import io.netty.util.CharsetUtil;
-import org.springblade.modules.webscoket.service.IPushMsgService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Component
-public class ServerHandler extends ChannelInboundHandlerAdapter {
-
-	private String reg_LA = "LA[d]{8}[d|A-F]{12}[d|A-F]{8}[d|A-Z]{2}[d|A-F]{4}[x2A][d|A-F]{6}[#@]";
-	private String reg_LB = "LB[\\d|A-F]{12}[\\x2A].*[#@]";
-	private String reg_LB2 = "LB[\\d|A-F]{6}[\\x2A].*[#@]";
-	private String reg_LD = "LD[d]{8}[d|A-F]{12}:[A-Z]{4}[\\x2A].*[#@]";
-
-
-	private ConcurrentHashMap<String, Channel> sessionChannelMap = new ConcurrentHashMap<String, Channel>();
-
-	private static ServerHandler serverHandler;
-
-	@PostConstruct
-	public void init() {
-		serverHandler = this;
-	}
-
-	/**
-	 * 客户端与服务端创建连接的时候调用
-	 */
-	@Override
-	public void channelActive(ChannelHandlerContext ctx) throws Exception {
-		System.out.println("CTX:" + ctx.channel());
-		System.out.println("客户端与服务端连接开始...");
-	}
-
-	/**
-	 * 客户端与服务端断开连接时调用
-	 */
-	@Override
-	public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-		System.out.println("客户端与服务端连接关闭...");
-		NettyConfig.group.remove(ctx.channel());
-	}
-
-	/**
-	 * 服务端接收客户端发送过来的数据结束之后调用
-	 */
-	@Override
-	public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
-		ctx.flush();
-		System.out.println("信息接收完毕...");
-	}
-
-	/**
-	 * 工程出现异常的时候调用
-	 */
-	@Override
-	public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
-		cause.printStackTrace();
-		ctx.close();
-	}
-
-	/**
-	 * 服务端处理客户端websocket请求的核心方法,这里接收了客户端发来的信息
-	 */
-	@Override
-	public void channelRead(ChannelHandlerContext channelHandlerContext, Object info) throws Exception {
-		System.out.println("接收到了:" + info);
-		ByteBuf buf = (ByteBuf) info;
-		byte[] req = new byte[buf.readableBytes()];
-		buf.readBytes(req);
-		String body = new String(req, "UTF-8");
-		String content = body;
-		System.out.println("接收客户端数据:" + body);
-
-	}
-
-
-}
+//package org.springblade.modules.nettyServer;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import io.netty.buffer.ByteBuf;
+//import io.netty.buffer.Unpooled;
+//import io.netty.channel.Channel;
+//import io.netty.channel.ChannelHandlerContext;
+//import io.netty.channel.ChannelInboundHandlerAdapter;
+//import io.netty.util.CharsetUtil;
+//import org.springblade.modules.webscoket.service.IPushMsgService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import javax.annotation.PostConstruct;
+//import java.text.SimpleDateFormat;
+//import java.util.*;
+//import java.util.concurrent.ConcurrentHashMap;
+//
+//@Component
+//public class ServerHandler extends ChannelInboundHandlerAdapter {
+//
+//	private String reg_LA = "LA[d]{8}[d|A-F]{12}[d|A-F]{8}[d|A-Z]{2}[d|A-F]{4}[x2A][d|A-F]{6}[#@]";
+//	private String reg_LB = "LB[\\d|A-F]{12}[\\x2A].*[#@]";
+//	private String reg_LB2 = "LB[\\d|A-F]{6}[\\x2A].*[#@]";
+//	private String reg_LD = "LD[d]{8}[d|A-F]{12}:[A-Z]{4}[\\x2A].*[#@]";
+//
+//
+//	private ConcurrentHashMap<String, Channel> sessionChannelMap = new ConcurrentHashMap<String, Channel>();
+//
+//	private static ServerHandler serverHandler;
+//
+//	@PostConstruct
+//	public void init() {
+//		serverHandler = this;
+//	}
+//
+//	/**
+//	 * 客户端与服务端创建连接的时候调用
+//	 */
+//	@Override
+//	public void channelActive(ChannelHandlerContext ctx) throws Exception {
+//		System.out.println("CTX:" + ctx.channel());
+//		System.out.println("客户端与服务端连接开始...");
+//	}
+//
+//	/**
+//	 * 客户端与服务端断开连接时调用
+//	 */
+//	@Override
+//	public void channelInactive(ChannelHandlerContext ctx) throws Exception {
+//		System.out.println("客户端与服务端连接关闭...");
+//		NettyConfig.group.remove(ctx.channel());
+//	}
+//
+//	/**
+//	 * 服务端接收客户端发送过来的数据结束之后调用
+//	 */
+//	@Override
+//	public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
+//		ctx.flush();
+//		System.out.println("信息接收完毕...");
+//	}
+//
+//	/**
+//	 * 工程出现异常的时候调用
+//	 */
+//	@Override
+//	public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
+//		cause.printStackTrace();
+//		ctx.close();
+//	}
+//
+//	/**
+//	 * 服务端处理客户端websocket请求的核心方法,这里接收了客户端发来的信息
+//	 */
+//	@Override
+//	public void channelRead(ChannelHandlerContext channelHandlerContext, Object info) throws Exception {
+//		System.out.println("接收到了:" + info);
+//		ByteBuf buf = (ByteBuf) info;
+//		byte[] req = new byte[buf.readableBytes()];
+//		buf.readBytes(req);
+//		String body = new String(req, "UTF-8");
+//		String content = body;
+//		System.out.println("接收客户端数据:" + body);
+//
+//	}
+//
+//
+//}
diff --git a/src/main/java/org/springblade/modules/runner/MyRunner.java b/src/main/java/org/springblade/modules/runner/MyRunner.java
index f4cfaa3..d15a9f3 100644
--- a/src/main/java/org/springblade/modules/runner/MyRunner.java
+++ b/src/main/java/org/springblade/modules/runner/MyRunner.java
@@ -1,24 +1,24 @@
-package org.springblade.modules.runner;
-
-import okhttp3.WebSocket;
-import org.springblade.common.config.CommonConfig;
-import org.springblade.common.config.FtpConfig;
-import org.springblade.modules.webscoket.WebSocketServer;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
-
-/**
- * 自定义启动(项目启动即启动)
- * @author zhongrj
- * @since 2022-01-06
- */
-@Component
-public class MyRunner implements CommandLineRunner {
-
-	@Override
-	public void run(String... args) throws Exception {
-		System.out.println("websocketServer 开始启动!");
-		//启动即创建webSocketServer
-		WebSocketServer socketServer = new WebSocketServer(CommonConfig.socketPort);
-	}
-}
+//package org.springblade.modules.runner;
+//
+//import okhttp3.WebSocket;
+//import org.springblade.common.config.CommonConfig;
+//import org.springblade.common.config.FtpConfig;
+//import org.springblade.modules.webscoket.WebSocketServer;
+//import org.springframework.boot.CommandLineRunner;
+//import org.springframework.stereotype.Component;
+//
+///**
+// * 自定义启动(项目启动即启动)
+// * @author zhongrj
+// * @since 2022-01-06
+// */
+//@Component
+//public class MyRunner implements CommandLineRunner {
+//
+//	@Override
+//	public void run(String... args) throws Exception {
+//		System.out.println("websocketServer 开始启动!");
+//		//启动即创建webSocketServer
+//		WebSocketServer socketServer = new WebSocketServer(CommonConfig.socketPort);
+//	}
+//}
diff --git a/src/main/java/org/springblade/modules/webscoket/ChannelSupervise.java b/src/main/java/org/springblade/modules/webscoket/ChannelSupervise.java
index 392ea34..866abc1 100644
--- a/src/main/java/org/springblade/modules/webscoket/ChannelSupervise.java
+++ b/src/main/java/org/springblade/modules/webscoket/ChannelSupervise.java
@@ -1,38 +1,38 @@
-package org.springblade.modules.webscoket;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelId;
-import io.netty.channel.group.ChannelGroup;
-import io.netty.channel.group.DefaultChannelGroup;
-import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
-import io.netty.util.concurrent.GlobalEventExecutor;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-public class ChannelSupervise {
-	private   static ChannelGroup GlobalGroup=new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
-	private  static ConcurrentMap<String, ChannelId> ChannelMap=new ConcurrentHashMap();
-	private  static Map<String, String> map = new HashMap<String, String>();;
-	public  static void addChannel(Channel channel, String name){
-		GlobalGroup.add(channel);
-		ChannelMap.put(channel.id().asShortText(),channel.id());
-		map.put(channel.id().asShortText(),name);
-	}
-	public static void removeChannel(Channel channel){
-		GlobalGroup.remove(channel);
-		ChannelMap.remove(channel.id().asShortText());
-		map.remove(channel.id().asShortText());
-	}
-	public static Channel findChannel(String id){
-		return GlobalGroup.find(ChannelMap.get(id));
-	}
-	public static String findName(String id){
-	return map.get(id);
-	}
-	public static void send2All(TextWebSocketFrame tws){
-		GlobalGroup.writeAndFlush(tws);
-	}
-
-}
+//package org.springblade.modules.webscoket;
+//import io.netty.channel.Channel;
+//import io.netty.channel.ChannelId;
+//import io.netty.channel.group.ChannelGroup;
+//import io.netty.channel.group.DefaultChannelGroup;
+//import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
+//import io.netty.util.concurrent.GlobalEventExecutor;
+//
+//import java.util.HashMap;
+//import java.util.Map;
+//import java.util.concurrent.ConcurrentHashMap;
+//import java.util.concurrent.ConcurrentMap;
+//
+//public class ChannelSupervise {
+//	private   static ChannelGroup GlobalGroup=new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
+//	private  static ConcurrentMap<String, ChannelId> ChannelMap=new ConcurrentHashMap();
+//	private  static Map<String, String> map = new HashMap<String, String>();;
+//	public  static void addChannel(Channel channel, String name){
+//		GlobalGroup.add(channel);
+//		ChannelMap.put(channel.id().asShortText(),channel.id());
+//		map.put(channel.id().asShortText(),name);
+//	}
+//	public static void removeChannel(Channel channel){
+//		GlobalGroup.remove(channel);
+//		ChannelMap.remove(channel.id().asShortText());
+//		map.remove(channel.id().asShortText());
+//	}
+//	public static Channel findChannel(String id){
+//		return GlobalGroup.find(ChannelMap.get(id));
+//	}
+//	public static String findName(String id){
+//	return map.get(id);
+//	}
+//	public static void send2All(TextWebSocketFrame tws){
+//		GlobalGroup.writeAndFlush(tws);
+//	}
+//
+//}
diff --git a/src/main/java/org/springblade/modules/webscoket/WebSocketHandler.java b/src/main/java/org/springblade/modules/webscoket/WebSocketHandler.java
index 3998d6c..9cdabc6 100644
--- a/src/main/java/org/springblade/modules/webscoket/WebSocketHandler.java
+++ b/src/main/java/org/springblade/modules/webscoket/WebSocketHandler.java
@@ -1,193 +1,193 @@
-package org.springblade.modules.webscoket;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.SimpleChannelInboundHandler;
-import io.netty.handler.codec.http.DefaultFullHttpResponse;
-import io.netty.handler.codec.http.FullHttpRequest;
-import io.netty.handler.codec.http.HttpResponseStatus;
-import io.netty.handler.codec.http.HttpVersion;
-import io.netty.handler.codec.http.websocketx.*;
-import io.netty.util.AttributeKey;
-import io.netty.util.CharsetUtil;
-import org.springblade.modules.nettyServer.NettyConfig;
-import org.springblade.modules.system.service.IUserService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-
-@Component
-public class WebSocketHandler extends SimpleChannelInboundHandler<Object> {
-
-	private WebSocketServerHandshaker handshaker;
-
-	private  String on=null;
-
-	@Autowired
-	private IUserService userService;
-
-	private static WebSocketHandler webSocketHandler;
-
-	@PostConstruct
-	public void init() {
-		webSocketHandler = this;
-	}
-
-	@Override
-	protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
-		if (msg instanceof FullHttpRequest) {
-			//以http请求形式接入,但是走的是websocket
-			handleHttpRequest(ctx, (FullHttpRequest) msg);
-		} else if (msg instanceof WebSocketFrame) {
-			//处理websocket客户端的消息
-			handlerWebSocketFrame(ctx, (WebSocketFrame) msg);
-		}
-	}
-
-	/**
-	 * 客户端加入连接
-	 * @param ctx
-	 * @throws Exception
-	 */
-	@Override
-	public void channelActive(ChannelHandlerContext ctx) throws Exception {
-		//添加连接
-		System.out.println("客户端加入连接:" + ctx.channel());
-		//ChannelSupervise.addChannel(ctx.channel());
-	}
-
-	/**
-	 * 客户端离开连接
-	 * @param ctx
-	 * @throws Exception
-	 */
-	@Override
-	public void channelInactive(ChannelHandlerContext ctx) throws Exception {
-		//断开连接
-		System.out.println("客户端断开连接:" + ctx.channel());
-		//用户离线状态
-		String name = ChannelSupervise.findName(ctx.channel().id().asShortText());
-		if ( name != null &&!name.equals("ping") ){
-			String num="0";
-			//工作状态(0闲置,1工作中)
-			String workSt = "0";
-//			webSocketHandler.userService.updateUser(num,name,workSt);
-			//ChannelSupervise.removeChannel(ctx.channel());
-
-			NettyConfig.getChannelGroup().remove(ctx.channel());
-			removeUserId(ctx);
-		}
-	}
-
-	@Override
-	public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
-		ctx.flush();
-	}
-
-	private void handlerWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) throws NumberFormatException, Exception {
-		System.out.println("ctx = " + ctx);
-		System.out.println("frame = " + frame);
-		// 判断是否关闭链路的指令
-		if (frame instanceof CloseWebSocketFrame) {
-			handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
-			return;
-		}
-		// 判断是否ping消息
-		if (frame instanceof PingWebSocketFrame) {
-			ctx.channel().write(
-				new PongWebSocketFrame(frame.content().retain()));
-			return;
-		}
-		// 本例程仅支持文本消息,不支持二进制消息
-		if (!(frame instanceof TextWebSocketFrame)) {
-			System.out.println("本例程仅支持文本消息,不支持二进制消息");
-			throw new UnsupportedOperationException(String.format(
-				"%s frame types not supported", frame.getClass().getName()));
-		}
-		// 返回应答消息
-		String request = ((TextWebSocketFrame) frame).text();
-
-		if (!request.equals("ping")){
-
-			NettyConfig.getUserChannelMap().put(request,ctx.channel());
-
-			//将用户id作为自定义属性加入到channel 中,方便随时channel中获取用户id
-			AttributeKey<String> key = AttributeKey.valueOf("userId");
-			ctx.channel().attr(key).setIfAbsent(request);
-
-			//把用户信息添加到通道里
-			ChannelSupervise.addChannel(ctx.channel(),request);
-			//用户在线状态
-			this.on=request;
-			//在线状态(0掉线,1在线)
-			String num="1";
-			//工作状态(0闲置,1工作中)
-			String workSt = "0";
-//			webSocketHandler.userService.updateUser(num,request,workSt);
-		}
-
-	}
-
-	/**
-	 * 唯一的一次http请求,用于创建websocket
-	 *
-	 * @throws InterruptedException
-	 */
-	private void handleHttpRequest(final ChannelHandlerContext ctx,
-								   FullHttpRequest req) throws InterruptedException {
-		//要求Upgrade为websocket,过滤掉get/Post
-		if (!req.decoderResult().isSuccess() || (!"websocket".equals(req.headers().get("Upgrade")))) {
-			//若不是websocket方式,则创建BAD_REQUEST的req,返回给客户端
-			sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_REQUEST));
-			return;
-		}
-		//握手
-		WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(
-			"ws://localhost:9034/websocket", null, false);
-		handshaker = wsFactory.newHandshaker(req);
-		if (handshaker == null) {
-			WebSocketServerHandshakerFactory
-				.sendUnsupportedVersionResponse(ctx.channel());
-		} else {
-			handshaker.handshake(ctx.channel(), req);
-		}
-	}
-
-	/**
-	 * 拒绝不合法的请求,并返回错误信息
-	 */
-	private static void sendHttpResponse(ChannelHandlerContext ctx,
-                                         FullHttpRequest req, DefaultFullHttpResponse res) {
-		// 返回应答给客户端
-		if (res.status().code() != 200) {
-			ByteBuf buf = Unpooled.copiedBuffer(res.status().toString(),
-				CharsetUtil.UTF_8);
-			res.content().writeBytes(buf);
-			buf.release();
-		}
-		ChannelFuture f = ctx.channel().writeAndFlush(res);
-		// 如果是非Keep-Alive,关闭连接
-//		if (!isKeepAlive(req) || res.status().code() != 200) {
-//			f.addListener(ChannelFutureListener.CLOSE);
+//package org.springblade.modules.webscoket;
+//
+//import io.netty.buffer.ByteBuf;
+//import io.netty.buffer.Unpooled;
+//import io.netty.channel.ChannelFuture;
+//import io.netty.channel.ChannelHandlerContext;
+//import io.netty.channel.SimpleChannelInboundHandler;
+//import io.netty.handler.codec.http.DefaultFullHttpResponse;
+//import io.netty.handler.codec.http.FullHttpRequest;
+//import io.netty.handler.codec.http.HttpResponseStatus;
+//import io.netty.handler.codec.http.HttpVersion;
+//import io.netty.handler.codec.http.websocketx.*;
+//import io.netty.util.AttributeKey;
+//import io.netty.util.CharsetUtil;
+//import org.springblade.modules.nettyServer.NettyConfig;
+//import org.springblade.modules.system.service.IUserService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import javax.annotation.PostConstruct;
+//
+//@Component
+//public class WebSocketHandler extends SimpleChannelInboundHandler<Object> {
+//
+//	private WebSocketServerHandshaker handshaker;
+//
+//	private  String on=null;
+//
+//	@Autowired
+//	private IUserService userService;
+//
+//	private static WebSocketHandler webSocketHandler;
+//
+//	@PostConstruct
+//	public void init() {
+//		webSocketHandler = this;
+//	}
+//
+//	@Override
+//	protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
+//		if (msg instanceof FullHttpRequest) {
+//			//以http请求形式接入,但是走的是websocket
+//			handleHttpRequest(ctx, (FullHttpRequest) msg);
+//		} else if (msg instanceof WebSocketFrame) {
+//			//处理websocket客户端的消息
+//			handlerWebSocketFrame(ctx, (WebSocketFrame) msg);
 //		}
-	}
-	@Override
-	public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
-		cause.printStackTrace();
-		ctx.close();
-	}
-
-	/**
-	 * 删除用户与channel 对应关系
-	 * @param ctx
-	 */
-	private void removeUserId(ChannelHandlerContext ctx){
-		AttributeKey<String> key = AttributeKey.valueOf("userId");
-		String userId = ctx.channel().attr(key).get();
-		NettyConfig.getUserChannelMap().remove(userId);
-	}
-
-}
+//	}
+//
+//	/**
+//	 * 客户端加入连接
+//	 * @param ctx
+//	 * @throws Exception
+//	 */
+//	@Override
+//	public void channelActive(ChannelHandlerContext ctx) throws Exception {
+//		//添加连接
+//		System.out.println("客户端加入连接:" + ctx.channel());
+//		//ChannelSupervise.addChannel(ctx.channel());
+//	}
+//
+//	/**
+//	 * 客户端离开连接
+//	 * @param ctx
+//	 * @throws Exception
+//	 */
+//	@Override
+//	public void channelInactive(ChannelHandlerContext ctx) throws Exception {
+//		//断开连接
+//		System.out.println("客户端断开连接:" + ctx.channel());
+//		//用户离线状态
+//		String name = ChannelSupervise.findName(ctx.channel().id().asShortText());
+//		if ( name != null &&!name.equals("ping") ){
+//			String num="0";
+//			//工作状态(0闲置,1工作中)
+//			String workSt = "0";
+////			webSocketHandler.userService.updateUser(num,name,workSt);
+//			//ChannelSupervise.removeChannel(ctx.channel());
+//
+//			NettyConfig.getChannelGroup().remove(ctx.channel());
+//			removeUserId(ctx);
+//		}
+//	}
+//
+//	@Override
+//	public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
+//		ctx.flush();
+//	}
+//
+//	private void handlerWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) throws NumberFormatException, Exception {
+//		System.out.println("ctx = " + ctx);
+//		System.out.println("frame = " + frame);
+//		// 判断是否关闭链路的指令
+//		if (frame instanceof CloseWebSocketFrame) {
+//			handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
+//			return;
+//		}
+//		// 判断是否ping消息
+//		if (frame instanceof PingWebSocketFrame) {
+//			ctx.channel().write(
+//				new PongWebSocketFrame(frame.content().retain()));
+//			return;
+//		}
+//		// 本例程仅支持文本消息,不支持二进制消息
+//		if (!(frame instanceof TextWebSocketFrame)) {
+//			System.out.println("本例程仅支持文本消息,不支持二进制消息");
+//			throw new UnsupportedOperationException(String.format(
+//				"%s frame types not supported", frame.getClass().getName()));
+//		}
+//		// 返回应答消息
+//		String request = ((TextWebSocketFrame) frame).text();
+//
+//		if (!request.equals("ping")){
+//
+//			NettyConfig.getUserChannelMap().put(request,ctx.channel());
+//
+//			//将用户id作为自定义属性加入到channel 中,方便随时channel中获取用户id
+//			AttributeKey<String> key = AttributeKey.valueOf("userId");
+//			ctx.channel().attr(key).setIfAbsent(request);
+//
+//			//把用户信息添加到通道里
+//			ChannelSupervise.addChannel(ctx.channel(),request);
+//			//用户在线状态
+//			this.on=request;
+//			//在线状态(0掉线,1在线)
+//			String num="1";
+//			//工作状态(0闲置,1工作中)
+//			String workSt = "0";
+////			webSocketHandler.userService.updateUser(num,request,workSt);
+//		}
+//
+//	}
+//
+//	/**
+//	 * 唯一的一次http请求,用于创建websocket
+//	 *
+//	 * @throws InterruptedException
+//	 */
+//	private void handleHttpRequest(final ChannelHandlerContext ctx,
+//								   FullHttpRequest req) throws InterruptedException {
+//		//要求Upgrade为websocket,过滤掉get/Post
+//		if (!req.decoderResult().isSuccess() || (!"websocket".equals(req.headers().get("Upgrade")))) {
+//			//若不是websocket方式,则创建BAD_REQUEST的req,返回给客户端
+//			sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_REQUEST));
+//			return;
+//		}
+//		//握手
+//		WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(
+//			"ws://localhost:9034/websocket", null, false);
+//		handshaker = wsFactory.newHandshaker(req);
+//		if (handshaker == null) {
+//			WebSocketServerHandshakerFactory
+//				.sendUnsupportedVersionResponse(ctx.channel());
+//		} else {
+//			handshaker.handshake(ctx.channel(), req);
+//		}
+//	}
+//
+//	/**
+//	 * 拒绝不合法的请求,并返回错误信息
+//	 */
+//	private static void sendHttpResponse(ChannelHandlerContext ctx,
+//                                         FullHttpRequest req, DefaultFullHttpResponse res) {
+//		// 返回应答给客户端
+//		if (res.status().code() != 200) {
+//			ByteBuf buf = Unpooled.copiedBuffer(res.status().toString(),
+//				CharsetUtil.UTF_8);
+//			res.content().writeBytes(buf);
+//			buf.release();
+//		}
+//		ChannelFuture f = ctx.channel().writeAndFlush(res);
+//		// 如果是非Keep-Alive,关闭连接
+////		if (!isKeepAlive(req) || res.status().code() != 200) {
+////			f.addListener(ChannelFutureListener.CLOSE);
+////		}
+//	}
+//	@Override
+//	public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
+//		cause.printStackTrace();
+//		ctx.close();
+//	}
+//
+//	/**
+//	 * 删除用户与channel 对应关系
+//	 * @param ctx
+//	 */
+//	private void removeUserId(ChannelHandlerContext ctx){
+//		AttributeKey<String> key = AttributeKey.valueOf("userId");
+//		String userId = ctx.channel().attr(key).get();
+//		NettyConfig.getUserChannelMap().remove(userId);
+//	}
+//
+//}
diff --git a/src/main/java/org/springblade/modules/webscoket/WebSocketServer.java b/src/main/java/org/springblade/modules/webscoket/WebSocketServer.java
index a47840a..f3aa0fb 100644
--- a/src/main/java/org/springblade/modules/webscoket/WebSocketServer.java
+++ b/src/main/java/org/springblade/modules/webscoket/WebSocketServer.java
@@ -1,59 +1,59 @@
-package org.springblade.modules.webscoket;
-import io.netty.bootstrap.ServerBootstrap;
-import io.netty.channel.ChannelFuture;
-import io.netty.channel.ChannelInitializer;
-import io.netty.channel.ChannelOption;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
-import io.netty.handler.codec.http.HttpObjectAggregator;
-import io.netty.handler.codec.http.HttpServerCodec;
-import io.netty.handler.logging.LogLevel;
-import io.netty.handler.logging.LoggingHandler;
-import io.netty.handler.stream.ChunkedWriteHandler;
-
-public class WebSocketServer {
-	private int port = 9034;
-
-	public WebSocketServer(int port) {
-		bind(port);
-	}
-
-	public void bind(int port) {
-		Thread thread = new Thread(new Runnable() {
-			@Override
-			public void run() {
-				EventLoopGroup bossGroup = new NioEventLoopGroup();
-				EventLoopGroup workerGroup = new NioEventLoopGroup();
-				try {
-					ServerBootstrap serverBootstrap = new ServerBootstrap();
-					serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
-						.handler(new LoggingHandler(LogLevel.INFO))
-						//保持连接
-						.childOption(ChannelOption.SO_KEEPALIVE, true)
-						.childHandler(new ChannelInitializer<SocketChannel>() {
-							@Override
-							protected void initChannel(SocketChannel ch) {
-//	                            ch.pipeline().addLast("logging",new LoggingHandler("DEBUG"));//设置log监听器,并且日志级别为debug,方便观察运行流程
-								ch.pipeline().addLast("http-codec", new HttpServerCodec());//设置解码器
-								ch.pipeline().addLast("aggregator", new HttpObjectAggregator(65536));//聚合器,使用websocket会用到
-								ch.pipeline().addLast("http-chunked", new ChunkedWriteHandler());//用于大数据的分区传输
-								ch.pipeline().addLast("handler", new WebSocketHandler());//自定义的业务handler
-							}
-						});
-
-					ChannelFuture channelFuture = serverBootstrap.bind(port).sync();
-					System.out.println("WebSocketServer启动成功");
-					channelFuture.channel().closeFuture().sync();
-				} catch (Exception e) {
-					e.printStackTrace();
-				} finally {
-					bossGroup.shutdownGracefully();
-					workerGroup.shutdownGracefully();
-				}
-			}
-		});
-		thread.start();
-	}
-}
+//package org.springblade.modules.webscoket;
+//import io.netty.bootstrap.ServerBootstrap;
+//import io.netty.channel.ChannelFuture;
+//import io.netty.channel.ChannelInitializer;
+//import io.netty.channel.ChannelOption;
+//import io.netty.channel.EventLoopGroup;
+//import io.netty.channel.nio.NioEventLoopGroup;
+//import io.netty.channel.socket.SocketChannel;
+//import io.netty.channel.socket.nio.NioServerSocketChannel;
+//import io.netty.handler.codec.http.HttpObjectAggregator;
+//import io.netty.handler.codec.http.HttpServerCodec;
+//import io.netty.handler.logging.LogLevel;
+//import io.netty.handler.logging.LoggingHandler;
+//import io.netty.handler.stream.ChunkedWriteHandler;
+//
+//public class WebSocketServer {
+//	private int port = 9034;
+//
+//	public WebSocketServer(int port) {
+//		bind(port);
+//	}
+//
+//	public void bind(int port) {
+//		Thread thread = new Thread(new Runnable() {
+//			@Override
+//			public void run() {
+//				EventLoopGroup bossGroup = new NioEventLoopGroup();
+//				EventLoopGroup workerGroup = new NioEventLoopGroup();
+//				try {
+//					ServerBootstrap serverBootstrap = new ServerBootstrap();
+//					serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class)
+//						.handler(new LoggingHandler(LogLevel.INFO))
+//						//保持连接
+//						.childOption(ChannelOption.SO_KEEPALIVE, true)
+//						.childHandler(new ChannelInitializer<SocketChannel>() {
+//							@Override
+//							protected void initChannel(SocketChannel ch) {
+////	                            ch.pipeline().addLast("logging",new LoggingHandler("DEBUG"));//设置log监听器,并且日志级别为debug,方便观察运行流程
+//								ch.pipeline().addLast("http-codec", new HttpServerCodec());//设置解码器
+//								ch.pipeline().addLast("aggregator", new HttpObjectAggregator(65536));//聚合器,使用websocket会用到
+//								ch.pipeline().addLast("http-chunked", new ChunkedWriteHandler());//用于大数据的分区传输
+//								ch.pipeline().addLast("handler", new WebSocketHandler());//自定义的业务handler
+//							}
+//						});
+//
+//					ChannelFuture channelFuture = serverBootstrap.bind(port).sync();
+//					System.out.println("WebSocketServer启动成功");
+//					channelFuture.channel().closeFuture().sync();
+//				} catch (Exception e) {
+//					e.printStackTrace();
+//				} finally {
+//					bossGroup.shutdownGracefully();
+//					workerGroup.shutdownGracefully();
+//				}
+//			}
+//		});
+//		thread.start();
+//	}
+//}
diff --git a/src/main/java/org/springblade/modules/webscoket/controller/PushMsgController.java b/src/main/java/org/springblade/modules/webscoket/controller/PushMsgController.java
index ff69925..875a592 100644
--- a/src/main/java/org/springblade/modules/webscoket/controller/PushMsgController.java
+++ b/src/main/java/org/springblade/modules/webscoket/controller/PushMsgController.java
@@ -1,30 +1,30 @@
-package org.springblade.modules.webscoket.controller;
-
-import org.springblade.modules.webscoket.service.IPushMsgService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @author lq
- * @date 2020/4/1 11:22
- */
-@RestController
-public class PushMsgController {
-
-    @Autowired
-    private IPushMsgService pushMsgService;
-
-    @PostMapping("/pushUser")
-    public String pushUser(String userId,String msg){
-        pushMsgService.pushMsg(userId, msg);
-        return "消息发送成功:"+msg;
-    }
-
-    @PostMapping("/pushAll")
-    public String pushAll(String msg){
-        pushMsgService.pushMsg(msg);
-        return "消息发送成功:"+msg;
-    }
-
-}
+//package org.springblade.modules.webscoket.controller;
+//
+//import org.springblade.modules.webscoket.service.IPushMsgService;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+///**
+// * @author lq
+// * @date 2020/4/1 11:22
+// */
+//@RestController
+//public class PushMsgController {
+//
+//    @Autowired
+//    private IPushMsgService pushMsgService;
+//
+//    @PostMapping("/pushUser")
+//    public String pushUser(String userId,String msg){
+//        pushMsgService.pushMsg(userId, msg);
+//        return "消息发送成功:"+msg;
+//    }
+//
+//    @PostMapping("/pushAll")
+//    public String pushAll(String msg){
+//        pushMsgService.pushMsg(msg);
+//        return "消息发送成功:"+msg;
+//    }
+//
+//}
diff --git a/src/main/java/org/springblade/modules/webscoket/index.html b/src/main/java/org/springblade/modules/webscoket/index.html
index aed5d0a..f574955 100644
--- a/src/main/java/org/springblade/modules/webscoket/index.html
+++ b/src/main/java/org/springblade/modules/webscoket/index.html
@@ -1,57 +1,57 @@
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset = utf-8"/>
-    <title>WebSocket客户端</title>
-    <script type="text/javascript">
-        var socket;
-        if(!window.WebSocket){
-            window.WebSocket = window.MozWebSocket;
-        }
+<!--<html>-->
+<!--<head>-->
+<!--    <meta http-equiv="Content-Type" content="text/html; charset = utf-8"/>-->
+<!--    <title>WebSocket客户端</title>-->
+<!--    <script type="text/javascript">-->
+<!--        var socket;-->
+<!--        if(!window.WebSocket){-->
+<!--            window.WebSocket = window.MozWebSocket;-->
+<!--        }-->
 
-        if(window.WebSocket){
-            socket = new WebSocket("ws://localhost:9034/websocket");
-            socket.onmessage = function(event){
-                var ta = document.getElementById('responseContent');
-                ta.value += event.data + "\r\n";
-            };
+<!--        if(window.WebSocket){-->
+<!--            socket = new WebSocket("ws://localhost:9034/websocket");-->
+<!--            socket.onmessage = function(event){-->
+<!--                var ta = document.getElementById('responseContent');-->
+<!--                ta.value += event.data + "\r\n";-->
+<!--            };-->
 
-            socket.onopen = function(event){
-                var ta = document.getElementById('responseContent');
-                ta.value = "你当前的浏览器支持WebSocket,请进行后续操作\r\n";
-            };
+<!--            socket.onopen = function(event){-->
+<!--                var ta = document.getElementById('responseContent');-->
+<!--                ta.value = "你当前的浏览器支持WebSocket,请进行后续操作\r\n";-->
+<!--            };-->
 
-            socket.onclose = function(event){
-                var ta = document.getElementById('responseContent');
-                ta.value = "";
+<!--            socket.onclose = function(event){-->
+<!--                var ta = document.getElementById('responseContent');-->
+<!--                ta.value = "";-->
 
-                ta.value = "WebSocket连接已经关闭\r\n";
-            };
-        }else{
-            alert("您的浏览器不支持WebSocket");
-        }
+<!--                ta.value = "WebSocket连接已经关闭\r\n";-->
+<!--            };-->
+<!--        }else{-->
+<!--            alert("您的浏览器不支持WebSocket");-->
+<!--        }-->
 
 
 
-        function send(message){
-            if(!window.WebSocket){
-                return;
-            }
-            if(socket.readyState == WebSocket.OPEN){
-                socket.send(message);
-            }else{
-                alert("WebSocket连接没有建立成功!!");
-            }
-        }
-    </script>
-</head>
-<body>
-<form onSubmit="return false;">
-    <input type = "text" name = "message" value = ""/>
-    <br/><br/>
-    <input type = "button" value = "发送WebSocket请求消息" onClick = "send(this.form.message.value)"/>
-    <hr color="red"/>
-    <h2>客户端接收到服务端返回的应答消息</h2>
-    <textarea id = "responseContent" style = "width:1024px; height:300px"></textarea>
-</form>
-</body>
-</html>
+<!--        function send(message){-->
+<!--            if(!window.WebSocket){-->
+<!--                return;-->
+<!--            }-->
+<!--            if(socket.readyState == WebSocket.OPEN){-->
+<!--                socket.send(message);-->
+<!--            }else{-->
+<!--                alert("WebSocket连接没有建立成功!!");-->
+<!--            }-->
+<!--        }-->
+<!--    </script>-->
+<!--</head>-->
+<!--<body>-->
+<!--<form onSubmit="return false;">-->
+<!--    <input type = "text" name = "message" value = ""/>-->
+<!--    <br/><br/>-->
+<!--    <input type = "button" value = "发送WebSocket请求消息" onClick = "send(this.form.message.value)"/>-->
+<!--    <hr color="red"/>-->
+<!--    <h2>客户端接收到服务端返回的应答消息</h2>-->
+<!--    <textarea id = "responseContent" style = "width:1024px; height:300px"></textarea>-->
+<!--</form>-->
+<!--</body>-->
+<!--</html>-->
diff --git a/src/main/java/org/springblade/modules/webscoket/service/IPushMsgService.java b/src/main/java/org/springblade/modules/webscoket/service/IPushMsgService.java
index 3d2badb..dd0a34c 100644
--- a/src/main/java/org/springblade/modules/webscoket/service/IPushMsgService.java
+++ b/src/main/java/org/springblade/modules/webscoket/service/IPushMsgService.java
@@ -1,21 +1,21 @@
-package org.springblade.modules.webscoket.service;
-
-/**
- * @author 123456
- */
-public interface IPushMsgService {
-
-    /**
-     * 给指定用户发送消息
-     * @param userId
-     * @param msg
-     */
-    void pushMsg(String userId,String msg);
-
-    /**
-     * 给所有用户发送消息
-     * @param msg
-     */
-    void pushMsg(String msg);
-
-}
+//package org.springblade.modules.webscoket.service;
+//
+///**
+// * @author 123456
+// */
+//public interface IPushMsgService {
+//
+//    /**
+//     * 给指定用户发送消息
+//     * @param userId
+//     * @param msg
+//     */
+//    void pushMsg(String userId,String msg);
+//
+//    /**
+//     * 给所有用户发送消息
+//     * @param msg
+//     */
+//    void pushMsg(String msg);
+//
+//}
diff --git a/src/main/java/org/springblade/modules/webscoket/service/impl/PushMsgServiceImpl.java b/src/main/java/org/springblade/modules/webscoket/service/impl/PushMsgServiceImpl.java
index 5f046f4..498ba59 100644
--- a/src/main/java/org/springblade/modules/webscoket/service/impl/PushMsgServiceImpl.java
+++ b/src/main/java/org/springblade/modules/webscoket/service/impl/PushMsgServiceImpl.java
@@ -1,32 +1,32 @@
-package org.springblade.modules.webscoket.service.impl;
-
-import io.netty.channel.Channel;
-import io.netty.channel.group.ChannelGroup;
-import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
-import org.springblade.modules.nettyServer.NettyConfig;
-import org.springblade.modules.webscoket.service.IPushMsgService;
-import org.springframework.stereotype.Service;
-
-/**
- * @author lq
- * @date 2020/4/1 11:20
- */
-@Service
-public class PushMsgServiceImpl implements IPushMsgService {
-    @Override
-    public void pushMsg(String userId, String msg) {
-        Channel channel = NettyConfig.getUserChannelMap().get(userId);
-		if (channel != null){
-			channel.writeAndFlush(new TextWebSocketFrame(msg));
-		}
-
-    }
-
-    @Override
-    public void pushMsg(String msg) {
-        ChannelGroup group = NettyConfig.getChannelGroup();
-        String name = group.name();
-        System.out.println("空间大小:"+group.size()+",名字:"+name);
-        group.writeAndFlush(new TextWebSocketFrame(msg));
-    }
-}
+//package org.springblade.modules.webscoket.service.impl;
+//
+//import io.netty.channel.Channel;
+//import io.netty.channel.group.ChannelGroup;
+//import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
+//import org.springblade.modules.nettyServer.NettyConfig;
+//import org.springblade.modules.webscoket.service.IPushMsgService;
+//import org.springframework.stereotype.Service;
+//
+///**
+// * @author lq
+// * @date 2020/4/1 11:20
+// */
+//@Service
+//public class PushMsgServiceImpl implements IPushMsgService {
+//    @Override
+//    public void pushMsg(String userId, String msg) {
+//        Channel channel = NettyConfig.getUserChannelMap().get(userId);
+//		if (channel != null){
+//			channel.writeAndFlush(new TextWebSocketFrame(msg));
+//		}
+//
+//    }
+//
+//    @Override
+//    public void pushMsg(String msg) {
+//        ChannelGroup group = NettyConfig.getChannelGroup();
+//        String name = group.name();
+//        System.out.println("空间大小:"+group.size()+",名字:"+name);
+//        group.writeAndFlush(new TextWebSocketFrame(msg));
+//    }
+//}

--
Gitblit v1.9.3