java实现websocket长连接
时间: 2023-08-02 16:10:08 浏览: 124
好的,我可以为您提供Java实现WebSocket客户端的相关信息。
WebSocket是一种在Web浏览器和服务器之间建立实时双向通信的技术。在Java中,您可以使用Java API for WebSocket(JSR 356)实现WebSocket客户端。
下面是一个简单的Java WebSocket客户端示例:
```java
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import java.net.URI;
@ClientEndpoint
public class WebSocketClient {
private Session session;
@OnOpen
public void onOpen(Session session) {
System.out.println("WebSocket opened: " + session.getId());
this.session = session;
}
@OnMessage
public void onMessage(String message) {
System.out.println("Received message: " + message);
}
@OnClose
public void onClose(Session session, CloseReason closeReason) {
System.out.println("WebSocket closed with reason: " + closeReason.getReasonPhrase());
}
public void connect(String uri) {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer(this, new URI(uri));
} catch (Exception e) {
e.printStackTrace();
}
}
public void sendMessage(String message) {
try {
session.getBasicRemote().sendText(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个示例中,`@ClientEndpoint`注释指定了这个类是WebSocket客户端端点。`onOpen`,`onMessage`和`onClose`方法分别处理WebSocket连接打开,接收消息和关闭连接的事件。`connect`方法连接到WebSocket服务器,并`sendMessage`方法将消息发送到服务器。
使用示例:
```java
public static void main(String[] args) {
WebSocketClient client = new WebSocketClient();
client.connect("ws://localhost:8080/myapp/websocket");
client.sendMessage("Hello, server!");
}
```
以上是一个简单的Java WebSocket客户端示例,您可以根据自己的需要进行修改和扩展。
阅读全文