一.客户端的使用:
客户端连接服务端,客户端需要主动握手,需要html5的一些代码。
<script>
var socekt=new WebSocket("ws://localhost:8080/wb/websocet"); //ws代表websocket协议
socket.onpen=function(event){ //握手成功,调用该函数
socket.send("消息"); //客户端主动发送消息
}
socket.onmessage=function(event){ //监听消息,调用该函数
alert(event.data); //服务器发送的消息
}
socket.errror=function(event){ //监听连接异常
}
socket.close() //主动分手
socket.onclose:function(event){ //分手,调用
}
</script>
二.服务端的使用
- 引入socket依赖包:spring-boot-starter-websocket
- 创建配置bean的文件
@Component public class WebSocketConfig{ @Bean public ServerEndPointExporter serverEndPointExporter(){ return new ServerEndPointExporter(); } }
-
创建webserver的文件
@Component @ServerEndpoint("/webSocket") //和客户端哪里对应 public class webSocket{ private Session session; private static CopyOnWriterArraySet<WebSocket> webSocketSet=new CopyOnWriterArraySet(); @OnOpen public void onOpen(Session){ //建立连接时自动调用 this.seesion=session; webSocket.add(this); } @OnClose public void onClose(){ webSocket.remove(this); } @OnMessage //监听消息,自动执行 public void onMessage(String message){ } public void sendMessage(String message){ //发送消息 for(WebSocket webSocket:webSocketSet){ webSocket.session.getBasicRemote().sendText(message); } } }