java搭建websocket通信代码
时间: 2023-02-12 17:19:24 浏览: 151
java-WebSocket代码
Java使用WebSocket通信的代码示例如下:
```java
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/websocket")
public class WebSocketServer {
@OnOpen
public void onOpen(Session session) {
// 打开连接时触发
}
@OnClose
public void onClose(Session session) {
// 关闭连接时触发
}
@OnMessage
public void onMessage(String message, Session session) {
// 接收到客户端消息时触发
}
@OnError
public void onError(Throwable error) {
// 发生错误时触发
}
}
```
在上面的代码中, @ServerEndpoint 注解用于标识该类是一个WebSocket服务端, "/websocket"是WebSocket连接的地址。
onOpen, onClose, onMessage, onError是四个注解用于标识连接打开、关闭、消息接收、错误发生时触发的方法。
还需要一个Server实现类来启动服务,可以使用javax.websocket.server.ServerContainer类来实现。
```java
import javax.websocket.server.ServerContainer;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
public class WebSocketServerStart {
public static void main(String[] args) {
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
try {
// 获取ServerContainer
ServerContainer container = WebSocketServerContainerInitializer.configureContext(context);
// 添加Endpoint
container.addEndpoint(WebSocketServer.class);
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这样就可以在8080端口监听WebSocket连接了。
阅读全文