一般情况下,使用websocket首先要创建的是服务端,只是这里只记录一下项目中使用的部分,由于服务端是另外的一个项目,所以这里只是记录一下客户端的一些信息。
对于websocket也是第一次接触,有什么遗漏和不对的地方多多指正,欢迎添砖加瓦。。。
1.配置后台websocket
package com.huayu.config.websocket;
import lombok.extern.slf4j.Slf4j;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
@Slf4j
public class MyWebSocketClient extends WebSocketClient {
public MyWebSocketClient(URI serverUri) {
super(serverUri);
}
@Override
public void onOpen(ServerHandshake arg0) {
log.info("------ 连接成功 onOpen ------");
}
@Override
public void onClose(int arg0, String arg1, boolean arg2) {
log.info("------ 连接关闭 onClose ------{}", arg1);
}
@Override
public void onError(Exception arg0) {
log.info("------ 连接错误 onError ------{}", arg0);
}
@Override
public void onMessage(String arg0) {
log.info("-------- 接收到服务端数据: " + arg0 + "--------");
}
}
2.把客户端注入到容器中,这样可以在service直接使用
@Configuration
public class WebsocketConfig {
@Bean
public WebSocketClient webServiceClient() throws URISyntaxException {
MyWebSocketClient mWebSocketClient = new MyWebSocketClient(new URI("服务端地址"));
mWebSocketClient.connect();
return mWebSocketClient;
}
}
3.使用
@RestController
@AllArgsConstructor
@RequestMapping("/tem")
public class TempController {
/**
* WebSocketClient 不是用自己创建的MyWebsocketClient类,
* 一开始搞错了
**/
@Autowired
private WebSocketClient webSocketClient;
@RequestMapping("/subscribe")
public String subscribe() {
webSocketClient.send(s);
return "发送订阅成功!!!";
}
}
ps:这里记录的相对比较简单,遇到的问题页比较少,遇到的问题以后再记录,这里提供一个相对比较完善的大神的文章
地址:https://blog.csdn.net/weixin_38111957/article/details/86352677