Java实现websocket客户端

常规情况下,大多数时候Java后台作为websocket服务端,实现方式也比较简单,网上很多案例代码。但是很多时候项目中服务与服务之间也需要使用websocket通信,此时项目就需要实现客户端功能。

步骤一:导入依赖:


   org.java-websocket
   Java-WebSocket
   1.3.5

步骤二:实现WebSocketClient抽象类:

该类中和websocket服务端接口类似,有onOpen、onClose、onMessage、onError方法,需要重写。实现该抽象类并注册中一个Bean。后面通过@AutoWired注入即可使用该客户端进行收发消息。

 @Bean
    public WebSocketClient webSocketClient() {
        try {
            WebSocketClient webSocketClient = new WebSocketClient(new URI("websocket服务端地址"), new Draft_6455()) {
                //连接服务端时触发
                @Override
                public void onOpen(ServerHandshake handshakedata) {

                    log.info("websocket客户端和服务器连接成功");
                }
                //收到服务端消息时触发
                @Override
                public void onMessage(String message) {
                    log.info("websocket客户端收到消息={}", message);
                }
                //和服务端断开连接时触发
                @Override
                public void onClose(int code, String reason, boolean remote) {
                    log.info("websocket客户端退出连接");
                }
                //连接异常时触发
                @Override
                public void onError(Exception ex) {
                    log.info("websocket客户端和服务器连接发生错误={}", ex.getMessage());
                }
            };
            webSocketClient.connect();
            return webSocketClient;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

步骤三:使用websocketClient向服务端发送消息:

使用webSocketClient.send()可以向服务端发送消息,查看api可以看到既可以发送String类型,也可以发送byte[]类型。

步骤四:接受处理服务端消息:

如果服务端有消息发送到客户端,那么可以调用webSocketClient.onMessage()方法,进行消息处理。

你可能感兴趣的:(java,websocket,开发语言)