zhaowenyu
2025-11-08 84be590529a31bda8c3d17665dbd6843a81cb2af
ard-sample/src/main/java/com/ard/sample/component/websocket/handler/DockWebSocketHandler.java
@@ -5,7 +5,6 @@
import com.ard.sample.component.websocket.model.Payload;
import com.ard.sample.component.websocket.model.WebSocketMessage;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.CloseStatus;
@@ -87,7 +86,6 @@
    private void handleSubscription(String userId, String type, Payload payload) {
        String sn = payload.getSn();
        boolean subscribe = payload.isSubscribe();
        String videoType = payload.getVideotype();
        String subscriptionKey = getSubscriptionKey(sn, type); // 生成唯一订阅标识
        if (subscribe) {
@@ -99,7 +97,7 @@
                // 开启直播
                // 开启直播逻辑
                System.out.println("开启直播");
                _liveStreamService.StartLiveStreaming(sn, videoType);
                _liveStreamService.StartLiveStreaming(sn);
            }
        } else {
            // 停止直播
@@ -140,6 +138,10 @@
     */
    private void removeUserAllSubscriptions(String userId) {
        for (Map.Entry<String, Set<String>> entry : subscriptions.entrySet()) {
            if (entry.getKey().contains(MessageType.LIVESTREAM.getType())) {
                String sn = entry.getKey().split(":")[0];
                _liveStreamService.StopLiveStreaming(sn);
            }
            entry.getValue().remove(userId);
            if (entry.getValue().isEmpty()) {
                subscriptions.remove(entry.getKey());