diff --git a/src/main/java/com/huaheng/pc/stompwebsocket/controller/WebSocketController.java b/src/main/java/com/huaheng/pc/stompwebsocket/controller/WebSocketController.java index eb16f32..ce9d88a 100644 --- a/src/main/java/com/huaheng/pc/stompwebsocket/controller/WebSocketController.java +++ b/src/main/java/com/huaheng/pc/stompwebsocket/controller/WebSocketController.java @@ -3,9 +3,11 @@ package com.huaheng.pc.stompwebsocket.controller; import com.huaheng.pc.stompwebsocket.WebsocketConstants; import com.huaheng.pc.stompwebsocket.domain.StompPayload; import com.huaheng.pc.stompwebsocket.service.StompWebSocketServiceImpl; +import org.springframework.messaging.Message; import org.springframework.messaging.handler.annotation.MessageMapping; import org.springframework.messaging.handler.annotation.SendTo; import org.springframework.stereotype.Controller; +import org.springframework.util.LinkedMultiValueMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -42,6 +44,15 @@ public class WebSocketController { } /** + * 服务器接收confirm消息 + */ + @MessageMapping("/websocket/message/confirm") + public void handleConfirmMsgByWebsocket(Message headers){ + String msg_id = ((LinkedMultiValueMap<String, String>) headers.getHeaders().get("nativeHeaders")).get("msg-id").get(0); + stompWebSocketService.confirmMsg(msg_id); + } + + /** * 服务器接收httpget上行的普通文本消息,再通过websocket广播出去 * http://127.0.0.1:8888/wms/websocket/message/string?msg=huaheng_robot */ diff --git a/src/main/java/com/huaheng/pc/stompwebsocket/service/StompWebSocketServiceImpl.java b/src/main/java/com/huaheng/pc/stompwebsocket/service/StompWebSocketServiceImpl.java index 732a0c4..1c0e29b 100644 --- a/src/main/java/com/huaheng/pc/stompwebsocket/service/StompWebSocketServiceImpl.java +++ b/src/main/java/com/huaheng/pc/stompwebsocket/service/StompWebSocketServiceImpl.java @@ -76,6 +76,10 @@ public class StompWebSocketServiceImpl extends ServiceImpl<StompMessageMapper, S messaging.convertAndSendToUser(user, topic, payload.getData(), headers); } + public void confirmMsg(String msg_id){ + removeById(msg_id); + } + /** * 将离线后的消息发送给用户 * @param user