yangys
2024-05-18 cc0bdfb33ef638dfafe3185c92c7076d815e1c9b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package com.qianwen.core.websocket.holder;
 
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.qianwen.core.websocket.custom.SubscriptionSessionFilter;
import org.springframework.web.socket.WebSocketSession;
 
 
public final class JsonMessageFilterHolder {
    private static final Map<String, SubscriptionSessionFilter> MESSAGE_HANDLER_MAP = new ConcurrentHashMap<>();
 
    private JsonMessageFilterHolder() {
    }
 
    public static SubscriptionSessionFilter getFilter(String type) {
        return MESSAGE_HANDLER_MAP.get(type);
    }
 
    public static void addFilter(SubscriptionSessionFilter filter) {
        MESSAGE_HANDLER_MAP.put(filter.type(), filter);
    }
 
    public static void closeSession(WebSocketSession session) {
        MESSAGE_HANDLER_MAP.forEach((key, filter) -> {
            filter.onClose(session);
        });
    }
}