Code: Select all
package com.main;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
public class App {
public static void main(String[] args) {
Server server = new Server(4550);
ServletContextHandler context = new
ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/api");
server.setHandler(context);
ServletHolder wsHolder = new ServletHolder(MyWebSocketServlet.class);
context.addServlet(wsHolder, "/");
try {
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
} finally {
server.destroy();
}
}
}
< /code>
Dies ist MyWebSocketServlet -Klasse: < /p>
package com.main;
import org.eclipse.jetty.websocket.server.JettyWebSocketServlet;
import org.eclipse.jetty.websocket.server.JettyWebSocketServletFactory;
import jakarta.servlet.annotation.WebServlet;
@WebServlet(urlPatterns = "/myWebSocket")
public class MyWebSocketServlet extends JettyWebSocketServlet {
@Override
protected void configure(JettyWebSocketServletFactory factory) {
factory.register(MyWebSocketHandler.class);
}
}
< /code>
Und zuletzt MyWebSocketHandler -Klasse: < /p>
package com.main;
import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect;
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
import org.eclipse.jetty.websocket.api.annotations.WebSocket;
@WebSocket
public class MyWebSocketHandler {
@OnWebSocketConnect
public void onConnect(Session session) {
System.out.println("Connected: " + session.getRemoteAddress());
}
@OnWebSocketMessage
public void onMessage(Session session, String message) {
System.out.println("Message received: " + message);
try {
session.getRemote().sendString("Echo: " + message);
} catch (Exception e) {
e.printStackTrace();
}
}
@OnWebSocketClose
public void onClose(Session session, int statusCode, String reason) {
System.out.println("Closed: " + reason);
}
}
< /code>
In der Gradle -Build -Datei werden die folgenden Bibliotheken importiert: < /p>
implementation 'org.eclipse.jetty:jetty-server:11.0.7'
implementation 'org.eclipse.jetty:jetty-servlet:11.0.7'
implementation 'org.eclipse.jetty.websocket:websocket-jetty-server:11.0.7'