द्वारा वेबसाइटसेट सर्वर एंडपॉइंट उदाहरण this question के आधार पर मैं विभिन्न प्रोटोकॉल संदेशों को अलग-अलग संभालने के लिए बातचीत किए गए सबप्रोटोकॉल के आधार पर एक सर्वर एंडपॉइंट उदाहरण बनाना चाहता हूं। दुर्भाग्यवश ServerEndpointConfig.Configurator.getEndpointInstance
[docs] बातचीत किए गए सबप्रोटोल प्राप्त करने के लिए मुझे किसी भी प्रासंगिक सत्र डेटा तक पहुंचने नहीं देगा, इसलिए मैं विभिन्न वर्गों को तुरंत चालू कर सकता हूं।सबस्कॉटोकॉल
public static class ServerEndpointConfigurator extends
ServerEndpointConfig.Configurator {
public ServerEndpointConfigurator()
{
}
@Override
public void modifyHandshake(ServerEndpointConfig config, HandshakeRequest request, HandshakeResponse response) {
// useful to work with session data in endpoint instance but not at getEndpointInstance
HttpSession httpSession = (HttpSession) request.getHttpSession();
config.getUserProperties().put(HttpSession.class.getName(), httpSession);
}
@Override
public <T> T getEndpointInstance(Class<T> endpointClass) throws InstantiationException {
// TODO get negotiated subprotocol and instantiate endpoint using switch case or factory
return (T) new WebSocketControllerA();
// or return (T) new WebSocketControllerB();
// or return (T) new WebSocketControllerC();
// ...
}
}
किसी भी विचार कैसे इस समस्या को हल या वहाँ किसी भी व्यापक रूप से स्वीकृत प्रथाओं कैसे अलग subprotocols को संभालने के लिए कर रहे हैं के लिए? मुझे वेब पर सबप्रोटोकॉल हैंडलिंग के बारे में उदाहरण कार्यान्वयन या उन्नत दस्तावेज़ीकरण खोजने में कठिनाई हो रही है।