0

Here is the my Jetty Web-socket Server implementation, I am able to create a server and can receive messages from client.

I receive message on method

public void onText(Session session, String message)

now from this method how can I call my main File (ToUpperWebSocketServletMain ) method. is there anyway I can pass pas main Class(ToUpperWebSocketServletMain) reference? So that I can use it when I receive message in my WebSocket?

public class ToUpperWebSocketServletMain {

    public static void main(String[] args) {

        Server server = new Server(6060);
        WebSocketHandler handler1 = new WebSocketHandler()

        {
            @Override
            public void configure(WebSocketServletFactory factory) {

                System.out.println("WebSocket TOUPPER initialized");
                factory.register(ToUpperWebSocket.class);

            }

        };

        ContextHandler context1 = new ContextHandler();
        context1.setContextPath("/ToUpper/"); 
        context1.setHandler(handler1);

        ContextHandlerCollection contextHandlers = new ContextHandlerCollection();
        contextHandlers.setHandlers(new Handler[] {context1} );

        server.setHandler(contextHandlers);

        try {
            server.start();
            server.join();
            System.out.println("WebSocket Started");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}


@WebSocket
public class ToUpperWebSocket {

    @OnWebSocketMessage
    public void onText(Session session, String message) throws IOException {
        System.out.println("Message received:" + message);
        if (session.isOpen()) {
            String response = message.toUpperCase();
            session.getRemote().sendString(response);
        }
    }

    @OnWebSocketConnect
    public void onConnect(Session session) throws IOException {
        System.out.println("ToUpperWebSocket"+session.getRemoteAddress().getHostString() + " connected!");
    }

    @OnWebSocketClose
    public void onClose(Session session, int status, String reason) {
        System.out.println("ToUpperWebSocket"+session.getRemoteAddress().getHostString() + " closed!");
    }

}
Community
  • 1
  • 1
Ashok
  • 601
  • 1
  • 17
  • 32
  • 1
    This seems to be a very similar question to an older one http://stackoverflow.com/a/15649791/775715 - pay attention to the answer relating to how to access common methods outside of the scope of a single WebSocket session/instance. – Joakim Erdfelt Jun 03 '16 at 00:00
  • @JoakimErdfelt Thanks that helped – Ashok Jun 03 '16 at 05:28

0 Answers0