网站建设及运维方案,民政局两学一做专题网站,网站内部优化的方法,微信小程序商店怎么开如何使用websocket实现前后端通信
websocket通信是很好玩的#xff0c;也很有用的的通信方式#xff0c;使用方式如下#xff1a;
第一步由于springboot很好地集成了websocket#xff0c;所以先在在pom.xml文件中引入依赖 dependencygroupIdorg.springfr…如何使用websocket实现前后端通信
websocket通信是很好玩的也很有用的的通信方式使用方式如下
第一步由于springboot很好地集成了websocket所以先在在pom.xml文件中引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-websocket/artifactId/dependency第二步在前端界面使用websocket也就是HTML文件中编写
scriptvar websocket null;if(WebSocket in window) {websocket new WebSocket(ws://yesell.natapp1.cc/sell/webSocket);}else {alert(该浏览器不支持websocket!);}websocket.onopen function (event) {console.log(建立连接);}websocket.onclose function (event) {console.log(连接关闭);}websocket.onmessage function (event) {console.log(收到消息: event.data)//所要执行的操作}websocket.onerror function () {alert(websocket通信发生错误);}window.onbeforeunload function () {websocket.close();}/script第三步一般我们是在controller层实现交互的然而websocket的交互是在service层
其中
ServerEndpoint(/webSocket)是定义了交互的地址
Slf4j
OnOpen、OnClose、OnMessage这三个方法与前端的三个同名方法相互交互在需要使用的位置调用方法如下
到这里基本写完了。
Component
ServerEndpoint(/webSocket)
Slf4j
public class WebSocket {private Session session;private static CopyOnWriteArraySetWebSocket webSocketSetnew CopyOnWriteArraySet();OnOpenpublic void onOpen(Session session){this.sessionsession;webSocketSet.add(this);log.info(【websocket消息】有新的连接总数{},webSocketSet.size());}OnClosepublic void onClose(){webSocketSet.remove(this);log.info(【websocket消息】连接断开总数{},webSocketSet.size());}OnMessagepublic void onMessage(String message){log.info(【websocket消息】收到客户端发来的消息{},message);}public void sendMessage(String message){for(WebSocket webSocket:webSocketSet){log.info(【websocket消息】广播消息{},message);try {webSocket.session.getBasicRemote().sendText(message);} catch (IOException e) {e.printStackTrace();}}}
}使用方式
Autowired
private WebSocket webSocket;
webSocket.sendMessage(传递的参数);