写一个实现javax.websocket.Endpoint类并重写onPing方法
时间: 2024-05-14 11:16:29 浏览: 246
好的,以下是一个简单的实现:
```
import javax.websocket.Endpoint;
import javax.websocket.EndpointConfig;
import javax.websocket.Session;
import javax.websocket.CloseReason;
import java.io.IOException;
public class MyEndpoint extends Endpoint {
@Override
public void onOpen(Session session, EndpointConfig config) {
System.out.println("WebSocket opened: " + session.getId());
}
@Override
public void onClose(Session session, CloseReason reason) {
System.out.println("WebSocket closed: " + session.getId() + " Reason: " + reason.getReasonPhrase());
}
@Override
public void onError(Session session, Throwable throwable) {
System.out.println("WebSocket error: " + session.getId() + " Error: " + throwable.getMessage());
}
@Override
public void onPing(Session session, byte[] payload) {
try {
session.getBasicRemote().sendPong(payload);
System.out.println("Ping received and Pong sent: " + session.getId());
} catch (IOException e) {
System.out.println("Error sending Pong: " + e.getMessage());
}
}
}
```
这个类实现了`javax.websocket.Endpoint`接口,并且重写了其中的`onOpen`、`onClose`、`onError`和`onPing`方法。其中`onPing`方法接收到客户端的Ping请求时,会将payload原封不动地返回给客户端作为Pong响应。
需要注意的是,在实际应用中,我们可能需要更加复杂的逻辑来处理WebSocket连接和数据传输,这里只是提供一个简单的示例。
阅读全文