Java创建一个WebSocket服务器
时间: 2024-02-09 22:13:29 浏览: 150
Vue+Java 通过websocket实现服务器与客户端双向通信操作
5星 · 资源好评率100%
在Java中创建WebSocket服务器,可以使用Java API for WebSocket(JSR 356)提供的API。以下是创建WebSocket服务器的基本步骤:
1. 创建一个实现了javax.websocket.Endpoint类的WebSocket服务器端点类,并实现onOpen、onClose、onError和onMessage等方法。
```java
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@ServerEndpoint("/websocket")
public class MyWebSocketServer {
@OnOpen
public void onOpen(Session session) throws IOException {
System.out.println("WebSocket opened: " + session.getId());
}
@OnClose
public void onClose(Session session) throws IOException {
System.out.println("WebSocket closed: " + session.getId());
}
@OnError
public void onError(Session session, Throwable throwable) throws IOException {
System.out.println("WebSocket error: " + session.getId());
throwable.printStackTrace();
}
@OnMessage
public void onMessage(String message, Session session) throws IOException {
System.out.println("WebSocket message received: " + message);
session.getBasicRemote().sendText("Echo: " + message);
}
}
```
2. 在服务器上运行WebSocket服务器端点类。
```java
import javax.websocket.server.ServerEndpointConfig;
import org.glassfish.tyrus.server.Server;
public class MyWebSocketServerStarter {
public static void main(String[] args) {
Server server = new Server("localhost", 8888, "/websocket", null, MyWebSocketServer.class);
try {
server.start();
System.out.println("WebSocket server started at " + server.getUri());
Thread.currentThread().join();
} catch (Exception e) {
e.printStackTrace();
} finally {
server.stop();
}
}
}
```
3. 启动WebSocket服务器,可以使用Java SE提供的内置HTTP服务器或者第三方HTTP服务器(如Tomcat、Jetty等)来启动WebSocket服务器。
以上就是创建WebSocket服务器的基本步骤,您可以根据自己的需求进行修改和扩展。
阅读全文