From 33b9576f739ec64ff1480f84d25d1200b055e1ac Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Tue, 23 Mar 2021 16:18:49 +0800
Subject: [PATCH] 1.webscoket

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/ChannelSupervise.java |   10 +++++++++-
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/WebSocketHandler.java |   28 +++++++++-------------------
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/index.html            |    3 +++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java            |    2 +-
 4 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java
index cd565ef..93bd4ea 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/JfptApplication.java
@@ -42,7 +42,7 @@
 	public void run(String... args) throws Exception {
 		Server server=new Server(8088);
 		TcpServer tcpServer = new TcpServer(8099);
-		//WebSocketServer webSocketServer= new WebSocketServer(9034);
+		WebSocketServer webSocketServer= new WebSocketServer(9034);
 		//UdpServer udpServer=new UdpServer(8099);
 	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/ChannelSupervise.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/ChannelSupervise.java
index b0c581d..afddb45 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/ChannelSupervise.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/ChannelSupervise.java
@@ -6,22 +6,30 @@
 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();
-	public  static void addChannel(Channel channel){
+	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/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/WebSocketHandler.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/WebSocketHandler.java
index 2cbdd7f..42794ea 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/WebSocketHandler.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/WebSocketHandler.java
@@ -62,6 +62,10 @@
 	public void channelInactive(ChannelHandlerContext ctx) throws Exception {
 		//断开连接
 		System.out.println("客户端断开连接:" + ctx.channel());
+		//用户离线状态
+		String name = ChannelSupervise.findName(ctx.channel().id().asShortText());
+		String num="0";
+		webSocketHandler.suserService.updateUser(num,name);
 		ChannelSupervise.removeChannel(ctx.channel());
 	}
 
@@ -90,26 +94,12 @@
 		}
 		// 返回应答消息
 		String request = ((TextWebSocketFrame) frame).text();
-		String substring1 = request.substring(0, 2);
+		//把用户信息添加到通道里
+		ChannelSupervise.addChannel(ctx.channel(),request);
 		//用户在线状态
-		if(substring1.equals("登录")){
-			String  online="1";
-			String substring = request.substring(0, request.length());
-			System.out.println(substring);
-			String[] split = substring.split(",");//以逗号分割
-			this.on=split[1];
-			webSocketHandler.suserService.updateUser(online,this.on);
-		}
-		//用户离线状态
-		else if (substring1.equals("退出")){
-			String  online="0";
-			String substring = request.substring(0, request.length());
-			System.out.println(substring);
-			String[] split = substring.split(",");//以逗号分割
-			this.on=split[1];
-			webSocketHandler.suserService.updateUser(online,this.on);
-			webSocketHandler.channelInactive(ctx);
-		}
+		this.on=request;
+		String num="1";
+		webSocketHandler.suserService.updateUser(num,request);
 		TextWebSocketFrame tws = new TextWebSocketFrame(new Date().toString()
 			+ ctx.channel().id() + ":" + ctx.channel());
 		// 返回【谁发的发给谁】
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/index.html b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/index.html
index 73735f9..aed5d0a 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/index.html
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/webscoket/index.html
@@ -23,12 +23,15 @@
             socket.onclose = function(event){
                 var ta = document.getElementById('responseContent');
                 ta.value = "";
+
                 ta.value = "WebSocket连接已经关闭\r\n";
             };
         }else{
             alert("您的浏览器不支持WebSocket");
         }
 
+
+
         function send(message){
             if(!window.WebSocket){
                 return;

--
Gitblit v1.9.3