Java Springboot webSocket简单实现,调接口推送消息到客户端socket
后台一般作为webSocket服务器,前台作为client。真实场景可能是后台程序在运行时(满足一定条件时),去给client发数据。
再补充一个SpringBoot的client吧
1、依赖
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.2</version>
</dependency>
2、client代码
package com.aircas.satellitemanagement.socket.client;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
public class WsClient extends WebSocketClient {
public WsClient(URI serverUri) {
super(serverUri);
}
@Override
public void onOpen(ServerHandshake arg0) {
System.out.println("握手成功");
}
@Override
public void onClose(int arg0, String arg1, boolean arg2) {
System.out.println("连接关闭");
}
@Override
public void onError(Exception arg0) {
System.out.println("发生错误");
}
@Override
public void onMessage(String arg0) {
System.out.println("收到消息" + arg0);
}
}
package com.aircas.satellitemanagement.socket.client;
import org.java_websocket.enums.ReadyState;
import java.net.URI;
public class Client {
// 根据实际websocket地址更改
private static String url = "ws://localhost:9101/webSocket/TT";
public static void main(String[] args) {
try {
WsClient myClient = new WsClient(new URI(url));
myClient.connect();
// 判断是否连接成功,未成功后面发送消息时会报错
while (!myClient.getReadyState().equals(ReadyState.OPEN)) {
System.out.println("连接中···请稍后");
Thread.sleep(1000);
}
myClient.send("MyClient");
System.out.println("发送成功");
myClient.send("test1");
myClient.send("test2");
} catch (Exception e) {
e.printStackTrace();
}
}
}

浙公网安备 33010602011771号