在Ubuntu上使用WebSocket,你需要遵循以下步骤:
首先,确保你已经在Ubuntu系统上安装了Java开发工具包(JDK)。如果没有,请运行以下命令来安装:
sudo apt update
sudo apt install openjdk-11-jdk
在你的Java项目中,你需要添加一个WebSocket库。一个流行的选择是Java API for WebSocket (JSR 356)。将以下依赖添加到你的pom.xml文件中(如果你使用的是Maven):
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
</dependency>
如果你使用的是Gradle,请将以下依赖添加到你的build.gradle文件中:
implementation 'javax.websocket:javax.websocket-api:1.1'
创建一个Java类,该类将作为WebSocket服务器端点。使用@ServerEndpoint注解来定义端点URL。例如,创建一个名为MyWebSocketServer的类:
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/websocket")
public class MyWebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println("Connected ... " + session.getId());
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("Received ...." + message);
}
@OnClose
public void onClose(Session session) {
System.out.println("Session " + session.getId() + " has ended");
}
@OnError
public void onError(Session session, Throwable throwable) {
System.out.println("Error on session " + session.getId());
}
}
创建一个Java类,该类将作为WebSocket客户端。使用ClientEndpoint注解来定义端点URL。例如,创建一个名为MyWebSocketClient的类:
import javax.websocket.ContainerProvider;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import java.net.URI;
@ClientEndpoint
public class MyWebSocketClient {
public static void main(String[] args) {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
URI uri = new URI("ws://localhost:8080/websocket");
container.connectToServer(MyWebSocketClient.class, uri);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@OnOpen
public void onOpen(Session session) {
System.out.println("Connected to server");
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("Received message: " + message);
}
@OnClose
public void onClose(Session session) {
System.out.println("Session ended");
}
@OnError
public void onError(Session session, Throwable throwable) {
System.out.println("Error on session");
}
}
首先,运行WebSocket服务器端点类(例如MyWebSocketServer)。然后,运行WebSocket客户端类(例如MyWebSocketClient)。服务器和客户端应该能够建立连接并交换消息。
注意:这里的示例代码仅用于演示目的。在实际应用中,你可能需要根据需求对代码进行调整。