#pom依赖( 一个是socket api,一个是具体实现)
<dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-client-api</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.glassfish.tyrus.bundles</groupId> <artifactId>tyrus-standalone-client</artifactId> <version>1.17</version> </dependency>
#客户端
@Slf4j @ClientEndpoint public class MyClientEndpoint { @OnOpen public void onOpen(Session session) { log.info("客户端连接成功!ID:{}", session.getId()); } @OnMessage public void processMessage(String message) { log.info("客户端接收消息:{}", message); } @OnError public void processError(Throwable t) { log.info("客户端发生错误:", t); } }
#调试客户端
@SpringBootApplication public class DemoWebsocketClientApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(DemoWebsocketClientApplication.class, args); } @Override public void run(String... args) throws Exception { try { WebSocketContainer container = ContainerProvider.getWebSocketContainer(); String uri = "ws://localhost:8888"; Session session = container.connectToServer(MyClientEndpoint.class, URI.create(uri)); session.getAsyncRemote().sendText("我是客户端的消息"); } catch (DeploymentException | IOException e) { e.printStackTrace(); } } }