java websocket服务器
时间: 2023-09-03 10:12:20 浏览: 48
要创建一个 WebSocket 服务器,你可以使用 Java 中内置的 javax.websocket API。这个 API 允许你创建 WebSocket 服务器和客户端。
以下是创建 WebSocket 服务器的一些基本步骤:
1. 创建一个类来表示 WebSocket 服务器,这个类应该扩展 javax.websocket.Endpoint 类。
2. 在类中实现 onOpen()、onClose()、onMessage()、onError() 这些方法。这些方法分别在 WebSocket 连接建立、关闭、接收消息和出现错误时被调用。
3. 在类中创建一个 javax.websocket.server.ServerEndpoint 注解,用于指定 WebSocket 服务器的 URL。
4. 使用 javax.websocket.server.ServerEndpointConfig.Configurator 类中的 modifyHandshake() 方法,来修改 WebSocket 握手时的请求和响应。
5. 在 main() 方法中启动 WebSocket 服务器。
下面是一个简单的 WebSocket 服务器示例代码:
```
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@ServerEndpoint("/websocket")
public class MyWebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println("WebSocket opened: " + session.getId());
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("Received message: " + message);
try {
session.getBasicRemote().sendText("Received your message: " + message);
} catch (IOException e) {
e.printStackTrace();
}
}
@OnClose
public void onClose(Session session) {
System.out.println("WebSocket closed: " + session.getId());
}
@OnError
public void onError(Throwable error) {
System.out.println("WebSocket error: " + error.getMessage());
}
}
```
在上面的代码中,我们定义了一个 WebSocket 服务器,其 URL 是 "/websocket"。在 onOpen() 方法中,我们输出了 WebSocket 连接的 ID。在 onMessage() 方法中,我们输出了接收到的消息,并把它发送回客户端。在 onClose() 方法中,我们输出了 WebSocket 连接关闭的 ID。在 onError() 方法中,我们输出了 WebSocket 错误信息。
要启动 WebSocket 服务器,我们可以使用以下代码:
```
import javax.websocket.server.ServerEndpointConfig;
import org.glassfish.tyrus.server.Server;
public class Main {
public static void main(String[] args) {
Server server = new Server("localhost", 8080, "/websocket", MyWebSocketServer.class);
try {
server.start();
System.out.println("WebSocket server started");
System.in.read();
} catch (Exception e) {
e.printStackTrace();
} finally {
server.stop();
}
}
}
```
在上面的代码中,我们使用了 Tyrus 库提供的 Server 类来启动 WebSocket 服务器,并指定了服务器的 URL、端口号、WebSocket 类和配置类。我们还输出了 WebSocket 服务器已经启动的信息。最后,我们使用 System.in.read() 让程序停留在那里,以保证服务器一直运行。
以上就是使用 Java 创建 WebSocket 服务器的基本步骤。