Spring实现Websocket
来源:互联网 发布:linux mv移动文件夹 编辑:程序博客网 时间:2024/05/17 22:10
1.加入js依赖,浏览器不支持websocket时,使用sockJS
<span style="font-size:18px;"><span style="font-size:18px;"><script type="text/javascript" src="js/sockjs-0.3.4.min.js"></script><script type="text/javascript" src="js/stomp.min.js"></script></span></span>
2.JS实现
<span style="font-size:18px;"><span style="font-size:18px;"> initWebSocketConnection: function () { //Create stomp client over sockJS protocol var sock = new SockJS('/webSocketVisitor'); stomp = Stomp.over(sock); // Connect to server via websocket stomp.connect({}, _this.connectCallback, _this.errorCallback); }, disWebSocketWebSocketConnection: function () { stomp && stomp.disconnect(function () { }); }, //Callback function to be called when stomp client is connected to server connectCallback: function () { stomp.subscribe('/topic/uploadVisitor', _this.parseEvent); }, //Callback function to be called when stomp client could not connect to server errorCallback: function () { alert(jQuery.i18n.prop('pb.label.site.fail.to.link.server.tip')); }, parseEvent:function (frame) { var entry = JSON.parse(frame.body); alert(entry.visitorName) },</span></span>
3.注册
<span style="font-size:18px;"><span style="font-size:18px;">@Configuration@EnableWebSocketMessageBrokerpublic class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer{ @Override public void registerStompEndpoints(StompEndpointRegistry registry) { registry.addEndpoint("/webSocketVisitor").addInterceptors(new HttpSessionHandshakeInterceptor()).withSockJS(); } @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic", "/queue"); config.setApplicationDestinationPrefixes("/wsapp"); }}</span></span>4.消息发送模板
<span style="font-size:18px;"><span style="font-size:18px;">@Componentpublic class RegisterVisitorEvent { @Autowired private SimpMessagingTemplate message; public void broadcastVisitor(RegisterVisitor visitor){ message.convertAndSend("/topic/uploadVisitor",visitor); }}</span></span>
5.调用
<span style="font-size:18px;"><span style="font-size:18px;"> @Autowired private RegisterVisitorEvent registerVisitorEvent; @RequestMapping(value = "/add") @ResponseBody public JsonResponse add(RegisterVisitorCustom visitor, @RequestParam(value = "suiteList[]", required = false) List<Object> suiteList, HttpServletRequest request){ JsonResponse jr = new JsonResponse(); List<Suite> suites = new ArrayList<>(); if (null != suiteList){ for (Object object : suiteList){ Suite suite = JSONObject.parseObject(object.toString(),Suite.class);//将建json对象转换为JavaBean对象 suites.add(suite); } } Admin admin = CurrentAdminUtil.getCurrentAdmin(request); visitor.setAdminId(admin.getId()); visitor.setAdminName(admin.getName()); visitor.setSuites(suites); visitor.setCreateTime(new Date()); visitorService.addVisitorAndSuite(visitor); registerVisitorEvent.broadcastVisitor(visitor); jr.setSuc(JsonResponse.SUCCESS); return jr; }</span></span>
0 0
- spring+tomcat8实现websocket
- Spring实现Websocket
- Spring实现WebSocket
- Spring-WebSocket实现
- java WebSocket的实现以及Spring WebSocket
- Spring WebSocket实现消息推送
- Spring Boot 使用 WebSocket 实现消息推送 及 WebSocket原理
- Spring+Websocket实现消息的推送
- Spring+WebSocket+SockJS实现实时聊天
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送 【转】
- 原 Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- Stomp Over Websocket的Spring实现
- Spring+Websocket实现消息的推送
- Spring+Websocket实现消息的推送
- JVM之内存分配与回收策略
- 7.8 MHDU 4614Vases and Flowers
- 个人总结1
- Android——ContentProvide 内容提供者+四大组件之三
- SQL语句
- Spring实现Websocket
- cloudera-scm-agent 启动失败 'Unable to create the pidfile'问题解决
- HDU 5877 Weak Pair 2016 ACM/ICPC Asia Regional Dalian Online(树状数组+离散化)
- Linux 如何禁止用户登录
- 单链表逆转
- Ubuntu14.04 Docker 自动安装脚本
- AngularJS介绍
- 博客地址迁移
- Revit开发之带UI的HelloWord