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