如何使⽤websocket实现前后端通信
websocket通信是很好玩的,也很有⽤的的通信⽅式,使⽤⽅式如下:
第⼀步由于springboot很好地集成了websocket,所以先在在l⽂件中引⼊依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
第⼆步在前端界⾯使⽤websocket,也就是HTML⽂件中编写
<script>
var websocket = null;
if('WebSocket' in window) {
websocket = new WebSocket('ws:///sell/webSocket');
}else {
alert('该浏览器不⽀持websocket!');
}
console.log('建⽴连接');
}
console.log('连接关闭');
}
console.log('收到消息:' + event.data)
//所要执⾏的操作
}
alert('websocket通信发⽣错误!');
}
websocket.close();
}
</script>
第三步,⼀般我们是在controller层实现交互的,然⽽websocket的交互是在service层,
其中:
@ServerEndpoint("/webSocket")是定义了交互的地址
@Slf4j是⽇志,有兴趣了解,请看这篇⽂章
@OnOpen、@OnClose、@OnMessage这三个⽅法与前端的三个同名⽅法相互交互,在需要使⽤的位置调⽤⽅法如下,到这⾥基本写完了。
@Component
@ServerEndpoint("/webSocket")
@Slf4j
public class WebSocket {
private Session session;
private static CopyOnWriteArraySet<WebSocket> webSocketSet=new CopyOnWriteArraySet<>();
@OnOpen
public void onOpen(Session session){
this.session=session;
webSocketSet.add(this);
log.info("【websocket消息】有新的连接,总数:{}",webSocketSet.size());
}
@OnClose
public void onClose(){
log.info("【websocket消息】连接断开,总数:{}",webSocketSet.size());
}
@OnMessage
public void onMessage(String message){
log.info("【websocket消息】收到客户端发来的消息:{}",message);
}
public void sendMessage(String message){
for(WebSocket webSocket:webSocketSet){
log.info("【websocket消息】⼴播消息:{}",message);
try {
BasicRemote().sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
使⽤⽅式:
@Autowired
前端websocket怎么用private WebSocket webSocket;
webSocket.sendMessage("传递的参数");
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论