Ich kann keine Verbindung zu Jetty Websocket v11 herstellenJava

Java-Forum
Anonymous
 Ich kann keine Verbindung zu Jetty Websocket v11 herstellen

Post by Anonymous »

Ich versuche, Server als Java Plain Application zu implementieren, bei dem Clients eine Verbindung zu einem Web -Socket herstellen können. /> Dies ist App -Klasse: < /p>

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'
Es muss eine Java -Anwendung (kein Spring -Start oder ein anderes Framework) und (wenn möglich) Stegbibliothek zur Definition des WebSocket sein.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post