springboot整合websocket两种方式,springboot+websocket

  springboot整合websocket两种方式,springboot+websocket

  00-1010后台实现1。导入依赖关系2。创建一个新的websocket配置类,注入Bean 3。创建一个新的WebSocket服务器,您可以在其中处理WebSocket logic 4。客户端实现,可以借助FreeMarker模板工具直接写在ftl文件中。五.测试

  00-1010我们都知道http协议只有在浏览器单方面向服务器发出请求时才能得到响应,而服务器无法主动向浏览器推送消息。目前主流的实现浏览器主动推送的方式有两种:

  轮询:缺点很多,但是实现简单的websocket:建立浏览器和服务器的TCP连接,实现全双工通信。springboot使用websocket的方式有两种,一种是实现简单的websocket,另一种是实现STOMP协议。本文描述了如何使用springboot实现一个简单的websocket。

  

目录

 

  00-1010直接在pom.xml中导入依赖关系

  依赖关系groupIdorg.springframework.boot/groupId artifactId spring-boot-starter-web socket/artifactId/dependency

  00-1010首先注入一个ServerEndpointExporterBean,它会自动注册应用了@ServerEndpoint注释的websocket端点。代码如下:

  @Componentpublic类WebSocketConfig { @ Bean public ServerEndpointExporter ServerEndpointExporter(){ return new ServerEndpointExporter();}}

  

背景

@ Component///在容器中注册@ server endpoint(/websocket )//接收websocket请求路径@Slf4jpublic类WebSocket {//当前连接(每个WebSocket连接都会创建一个web socket实例)私有会话Session;//定义一个websocket容器来存储session,即存储所有在线套接字连接私有静态CopyonWriteArraySetWebSocketWebSocketSet=New CopyonWriteArraySet();//处理连接建立@ on open public void op open(session session){ this . session=session;log . info([连接了新的客户端]: {} ,session . getid());websocketset . add(this);//在线群log.info ([WebSocket Message]有新的连接,总数:{} ,webSocketSet.size())中添加新用户;}//处理连接close @ on close public void on close(){ websocketset . remove(this);Log.info ([WebSocket Message]断开连接,总数:{} ,websocketset . size());//接受message @ on message public void on message(string message){ log . info([web socket message]收到客户端发来的消息:{} ,message);//群发消息public void sendmessage(string Message){ for(web socket web socket 3360 web socket Set){ log . info([web socket Message]广播群发消息,message={} ,Message);请尝试{ web socket . session . getbasicremote()。sendText(消息);} catch(Exception e){ e . printstacktrace();} }}

 

  00-1010由于部分浏览器可能不支持,可以先测试一下。代码如下:

  脚本变量websocket=nullif( web socket in window){ web socket=new web socket( ws ://localhost :8080/web socket );}else{ alert(当前浏览器不支持websocket消息通知);}//回调方法WebSocket。ON Open=function(event){ console . log( WS成功建立连接);//连接关闭web socket . on close=function(event){ console . log( WS连接关闭);//接收消息的回调方法web socket . on message=function(event){/* setMessageInnerHTML(event . data);*///alert(ws接收返回消息: event . data );Console.log(服务器返回消息: event . data );//弹出提醒(需要使用JQuary,所以先介绍JQuary)播放音乐$(#mymodal )。modal(show) //连接错误的回调方法web socket . on error=function(event){ alert( web socket通信错误!)//侦听窗口关闭事件。关闭窗口时,主动关闭websocket连接,防止在连接断开前关闭窗口,服务器会抛出异常。window . onbeforeunload=function(){ web socket . close();/脚本

  00-1010(客户创建新订单后,前台会进行提醒)

  @ Autowiredprivate web socket web socket;@ override @ transactional public ordered to Create(ordered to ordered to){//创建订单。(具体代码略)//创建新订单,发送websocket消息web socket . sendmessage(order to . get orderid());将订单退回给;}添加新订单:

  接收到websocket消息。

  关于SpringBoot如何使用WebSocket实现前后交互的这篇文章到此为止。关于SpringBoot前后交互的更多信息,请搜索之前关于流行IT的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: