Commit 1adc68f8 authored by daniel's avatar daniel

fix(websocket): sessionId一致问题修复

parent 92f20b9f
......@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
import org.springframework.messaging.simp.annotation.SubscribeMapping;
import org.springframework.stereotype.Controller;
import java.util.Map;
......@@ -29,9 +30,11 @@ public class WebSocketController {
* 处理客户端订阅特定票号
*/
@MessageMapping("/ticket/subscribe")
public void handleTicketSubscribe(@Payload Map<String, Object> message) {
String sessionId = (String) message.get("sessionId");
public void handleTicketSubscribe(@Payload Map<String, Object> message, SimpMessageHeaderAccessor headerAccessor) {
// String sessionId = (String) message.get("sessionId");
String sessionId = headerAccessor.getSessionId();
String userId = (String) message.get("userId");
String ticketNo = (String) message.get("ticketNo");
log.info("客户端订阅票号 - 会话ID: {}, 用户ID: {}, 票号: {}", sessionId, userId, ticketNo);
......
package com.dlbridge.jadp.websocket;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/api/test")
public class WebSocketTestController {
private final WebSocketSessionService sessionService;
public WebSocketTestController(WebSocketSessionService sessionService) {
this.sessionService = sessionService;
}
/**
* 测试接口:向指定用户发送票号核销消息
*/
@PostMapping("/sendTicket")
public String sendTicketMessage(@RequestBody Map<String, String> body) {
String userId = body.get("userId");
String ticketNo = body.get("ticketNo");
if (userId == null || ticketNo == null) return "缺少 userId 或 ticketNo";
WebSocketMessage response = WebSocketMessage.info(ticketNo,
"这是一个测试消息,票号:" + ticketNo);
sessionService.sendToUser(userId, response);
return "消息已发送到用户 " + userId;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment