Browse Source

feat:六一活动排课

Joburgess 4 years ago
parent
commit
ba652e4574

+ 5 - 13
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SoundController.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dto.MusicPitchDetailDto;
 import com.ym.mec.biz.service.SoundService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.teacher.handler.WebSocketHandler;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -19,7 +20,9 @@ import org.springframework.messaging.handler.annotation.SendTo;
 import org.springframework.messaging.simp.SimpMessagingTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.socket.TextMessage;
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Objects;
 
@@ -58,20 +61,9 @@ public class SoundController extends BaseController {
         return soundService.measureCompare(musicXmlInfoList, record);
     }
 
-    @MessageMapping("/soundDate")
-//    @SendTo("/topic/greetings")
-    public String greeting(String message){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(Objects.isNull(sysUser)){
-            LOGGER.error("用户登录信息异常");
-        }
-        LOGGER.info("{}:{}", sysUser.getUsername(), message);
-        return "Hello";
-    }
-
     @RequestMapping("sendToUser")
-    public HttpResponseResult sendToUser(String phone, String message){
-        template.convertAndSendToUser(phone, "/topic/greetings", message);
+    public HttpResponseResult sendToUser(String phone, String message) throws IOException {
+        WebSocketHandler.clients.get(phone).sendMessage(new TextMessage(message));
         return succeed();
     }
 

+ 7 - 5
mec-teacher/src/main/java/com/ym/mec/teacher/handler/WebSocketHandler.java

@@ -20,7 +20,7 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(WebSocketHandler.class);
 
-    private final Map<String, WebSocketSession> clients = new ConcurrentHashMap<>();
+    public static final Map<String, WebSocketSession> clients = new ConcurrentHashMap<>();
 
     public WebSocketHandler() {
         super();
@@ -28,13 +28,15 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
 
     @Override
     public void afterConnectionEstablished(WebSocketSession session) throws Exception {
-        LOGGER.info("{}上线", session.getPrincipal().getName());
+        String phone = session.getPrincipal().getName().split(":")[1];
+        LOGGER.info("{}上线", session.getPrincipal().getName().split(":")[1]);
+        clients.put(phone, session);
         super.afterConnectionEstablished(session);
     }
 
     @Override
     public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
-        LOGGER.info("{}: {}", session.getPrincipal().getName(), message.getPayload());
+        LOGGER.info("{}: {}", session.getPrincipal().getName().split(":")[1], message.getPayload());
         super.handleMessage(session, message);
     }
 
@@ -57,14 +59,14 @@ public class WebSocketHandler extends AbstractWebSocketHandler {
     @Override
     public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
         super.handleTransportError(session, exception);
-        LOGGER.info("发生了错误,移除客户端: {}", session.getId());
+        LOGGER.info("发生了错误,移除客户端: {}", session.getPrincipal().getName().split(":")[1]);
         session.close();
     }
 
     @Override
     public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
         super.afterConnectionClosed(session, status);
-        LOGGER.info("{}离线", session.getPrincipal().getName());
+        LOGGER.info("{}离线", session.getPrincipal().getName().split(":")[1]);
     }
 
     @Override