org.eclipse.jetty.websocket.servlet.WebSocketCreator

See:
http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/websocket/servlet/WebSocketCreator.html

Joakim Erdfelt / [email protected]

On Thu, Jul 13, 2017 at 10:31 AM, Joakim Erdfelt <[email protected]> wrote:

> Register a custom WebSocketCreator in your WebSocketServlet.configure()
> method.
>
> Skip the ServletContext entirely.
> Just pass in the HttpClient into your custom creator.
>
>
>     public class MyCreator implements WebSocketCreator
>     {
>         private HttpClient client;
>
>         public MyCreator(HttpClient client)
>         {
>             this.client = client;
>         }
>
>         @Override
>         public Object createWebSocket(ServletUpgradeRequest
> servletUpgradeRequest, ServletUpgradeResponse servletUpgradeResponse)
>         {
>             return new MyEndpoint(client);
>         }
>     }
>
>
>     public class MyWebSocketServlet extends WebSocketServlet
>     {
>         private HttpClient httpClient;
>
>         @Override
>         public void init() throws ServletException
>         {
>             httpClient = new HttpClient();
>             try
>             {
>                 httpClient.start();
>             }
>             catch (Exception e)
>             {
>                 throw new ServletException("Unable to start HttpClient",
> e);
>             }
>         }
>
>         @Override
>         public void destroy()
>         {
>             try
>             {
>                 httpClient.stop();
>             }
>             catch (Exception e)
>             {
>                 throw new RuntimeException("Unable to stop HttpClient", e);
>             }
>         }
>
>         @Override
>         public void configure(WebSocketServletFactory
> webSocketServletFactory)
>         {
>             webSocketServletFactory.setCreator(new MyCreator(httpClient));
>         }
>     }
>
>
> Joakim Erdfelt / [email protected]
>
> On Thu, Jul 13, 2017 at 1:17 AM, Alexander Farber <
> [email protected]> wrote:
>
>> Good morning,
>>
>> In a custom WebSocketServlet I create, start and store in the
>> ServletContext a Jetty HttpClient instance:
>>
>> public class MyServlet extends WebSocketServlet {
>>     private final SslContextFactory mSslFactory = new SslContextFactory();
>>     private final HttpClient mHttpClient = new HttpClient(mSslFactory);
>>
>>     @Override
>>     public void init() throws ServletException {
>>         super.init();
>>
>>         try {
>>             mHttpClient.start();
>>         } catch (Exception ex) {
>>             throw new ServletException(ex);
>>         }
>>
>>         ServletContext ctx = getServletContext();
>>         ctx.setAttribute("http_client", mHttpClient);
>>     }
>>
>> And then in the onWebSocketText method of my custom WebSocketListener I
>> need to retrieve the running HttpClient instance.
>>
>> I have provided few more details at:
>> https://stackoverflow.com/questions/45074546/how-to-access-
>> servletcontext-from-jetty-websocketlistener
>>
>> How to get ahold of the ServletContext please? Should I create a custom
>> WebSocketCreator for that?
>>
>> Regards
>> Alex
>>
>>
>>
>>
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>
>
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to