import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
import javax.annotation.PostConstruct;
import javax.websocket.*;
import java.io.IOException;
import java.net.URI;
@Slf4j
@Component
@Lazy(false)
@ClientEndpoint
public class MyWebSocketClient{
//https://www.csdn.net/tags/OtTaQg3sODMwNzQtYmxvZwO0O0OO0O0O.html spring 单实
例 websocket 多实例只会注入一次,这样获取会获取不到
private static MyWebSocketClient myWebSocketClient; //关键点 2
@Autowired
private RestTemplate restTemplate;
@Autowired
private MyServerProperties myServerProperties;
private Session session;
@PostConstruct
void init() {
myWebSocketClient = this;
String webSocketServerUrl =
"ws://localhost:8026/websocket/server/adapterClient/test";
while (session ==null ){
log.info("尝试连接 webSocket 服务端:{}",webSocketServerUrl);
try {
// 本机地址
// String hostAddress = InetAddress.getLocalHost().getHostAddress();
String wsUrl = webSocketServerUrl ;