Просмотр исходного кода

websocket功能优化,用户登录优化

shilin 4 лет назад
Родитель
Сommit
e40e2132ab

+ 2 - 1
src/main/java/com/gyee/frame/common/conf/UserLoginContext.java

@@ -1,9 +1,10 @@
 package com.gyee.frame.common.conf;
 
+import javax.websocket.Session;
 import java.util.concurrent.ConcurrentHashMap;
 
 public class UserLoginContext
 {
-    public static ConcurrentHashMap<String, String> userLoginMap = new ConcurrentHashMap();
+    public static ConcurrentHashMap<String, Session> userLoginMap = new ConcurrentHashMap();
 	
 }

+ 8 - 6
src/main/java/com/gyee/frame/controller/gen/GyeeuserController.java

@@ -19,6 +19,8 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 
+import javax.websocket.Session;
+import java.io.IOException;
 import java.util.*;
 
 @Controller
@@ -54,7 +56,7 @@ public class GyeeuserController extends SocketToolController{
 	 */
 	@GetMapping("/login")
 	@ResponseBody
-	public AjaxResult login(String username,String password){
+	public AjaxResult login(String username,String password) throws IOException {
 		Gyeeuser gyeeuser=new Gyeeuser();
 		gyeeuser.setUsername(username);
 		gyeeuser.setPassword(password);
@@ -63,7 +65,6 @@ public class GyeeuserController extends SocketToolController{
 
 
 
-
 			if(UserLoginContext.userLoginMap.containsKey(id))
 			{
 
@@ -71,15 +72,16 @@ public class GyeeuserController extends SocketToolController{
 				this.pushToWeb("pageNumber_4","functionNumber_5",id,"loginout", Messagetype.MESSAGE);
 
 
-			}else {
-				StringBuilder sb=new StringBuilder();
-				UserLoginContext.userLoginMap.put(id,id);
+				Session session= UserLoginContext.userLoginMap.get(id);
+				session.close();
+				UserLoginContext.userLoginMap.remove(id);
+
 			}
 
 			return AjaxResult.successData(200, id);
 			
 		}else{			
-			return AjaxResult.successData(200, "-1");
+			return AjaxResult.successData(600, "-1");
 		}
 	}
 

+ 5 - 1
src/main/java/com/gyee/frame/netty/websocket/WebSocketServer.java

@@ -3,6 +3,7 @@ package com.gyee.frame.netty.websocket;
 import cn.hutool.log.Log;
 import cn.hutool.log.LogFactory;
 import com.gyee.frame.common.conf.ExceptJobConfig;
+import com.gyee.frame.common.conf.UserLoginContext;
 import com.gyee.frame.common.quartz.SocketTaskUtil;
 import com.gyee.frame.common.spring.SpringUtils;
 import com.gyee.frame.netty.websocket.util.WebsocketUtil;
@@ -107,7 +108,10 @@ public class WebSocketServer extends SocketTaskUtil {
                 funcationNunberMap.put(jobkey,1);
             }
 
-
+        if(jobkey.equals("pageNumber_4_functionNumber_5"))
+        {
+            UserLoginContext.userLoginMap.put(keyid,session);
+        }
         Set<Map.Entry<String, CopyOnWriteArraySet<WebSocketServer>>> webSocketset = webSocketMapSet.entrySet();
         for (Iterator<Map.Entry<String, CopyOnWriteArraySet<WebSocketServer>>> it = webSocketset.iterator(); it.hasNext();) {
             Map.Entry<String, CopyOnWriteArraySet<WebSocketServer>> entry = (Map.Entry<String, CopyOnWriteArraySet<WebSocketServer>>) it.next();