Java后台实现WebSocket客户端

一、导入后台连接websocket的客户端依赖

<dependency>
    <groupId>org.java-websocket</groupId>
    <artifactId>Java-WebSocket</artifactId>
    <version>1.3.5</version>
</dependency>

二、实现客户端

@Component
public class WebSocketConfig {
          
   
    @Bean
    public WebSocketClient webSocketClient() {
          
   
        try {
          
   
            WebSocketClient webSocketClient = new WebSocketClient(new URI("ws://localhost:8085/websocket/test"),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;
    }

}

三、使用客户端发送消息

@Component
public class ScoketClient {
          
   
    @Autowired
    private WebSocketClient webSocketClient;
 
    @Override
    public void groupSending(String message) {
          
   
        webSocketClient.send(message+"---6666");
    }
 
    @Override
    public void appointSending(String name, String message) {
          
   
        webSocketClient.send("TOUSER"+name+";"+message);
    }
}

四、编写测试接口

@RestController
@RequestMapping("/websocket")
public class IndexController {
          
   
 
    @Autowired
    private ScoketClient webScoketClient;
 
    @GetMapping("/sendMessage")
    public String sendMessage(String message){
          
   
        webScoketClient.groupSending(message);
        return message;
    }
 }
经验分享 程序员 微信小程序 职场和发展