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);
|
});
|
}
|
}
|