肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 在Java中通过websocket实现消息推送的实现代码详解

在Java中通过websocket实现消息推送的实现代码详解

时间:2020-06-09 21:13:01

相关推荐

Java|java教程

Java,websocket,消息推送

Java-java教程一.服务层

简单的注册登录PHP源码,vscode如何看源代码,ubuntu usr作用,tomcat 7 卸载失败,ebay数据爬虫,php赋值运算符,宁波seo排名哪家有名,欧美视频导航网站模板下载地址,pageadmin模板怎么用lzw

package com.demo.websocket;import java.io.IOException;import java.util.Iterator;import java.util.concurrent.ConcurrentLinkedQueue;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.springframework.context.annotation.Configuration;import org.springframework.web.socket.CloseStatus;import org.springframework.web.socket.TextMessage;import org.springframework.web.socket.WebSocketSession;import org.springframework.web.socket.config.annotation.EnableWebSocket;import org.springframework.web.socket.config.annotation.WebSocketConfigurer;import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;import org.springframework.web.socket.handler.TextWebSocketHandler;@Configuration@EnableWebSocketpublic class websocketListener implements WebSocketConfigurer, ServletContextListener{ private ConcurrentLinkedQueue sessions = new ConcurrentLinkedQueue(); private WebSocketHandlerTest handler; @Override public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } @Override public void contextInitialized(ServletContextEvent arg0) { // TODO Auto-generated method stub } @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { handler = new WebSocketHandlerTest(); registry.addHandler(handler, "/ws/notifymessage.ws"); registry.addHandler(handler, "/ws/sockjs/notifymessage.ws").withSockJS(); new Thread(handler).start(); } class WebSocketHandlerTest extends TextWebSocketHandler implements Runnable{ @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {sessions.remove(session); } @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception {sessions.add(session); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {super.handleTextMessage(session, message); } @Override public void run() {System.out.println("等待推送....");try { int i = 0; for (;;) {synchronized (this) { try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }}if(i%10==0){ nofity("消息推送测试......"); System.out.println("推送消息了....");}else{ System.out.println("本次不推送消息了....");}i++; }} catch (IOException e) { e.printStackTrace(); System.out.println("失败....");} } private void nofity(String message) throws IOException {Iterator iterator = sessions.iterator();while (iterator.hasNext()) { WebSocketSession session = iterator.next(); synchronized(session){if(session.isOpen()){ session.sendMessage(new TextMessage(message));}else{ iterator.remove();} }} } }}

二.前台界面监听

在线教育直播php源码,ubuntu管理硬件命令,网络爬虫 招聘 兼职,php scoktes,商品seo策略lzw

Insert title herewebsocket测试界面var websocketPath = "localhost:8080/demo-web";if (WebSocket in window) { websocket = new WebSocket("ws://"+websocketPath+"/ws/notifymessage.ws");} else if (MozWebSocket in window) { websocket = new MozWebSocket("ws://"+websocketPath+"/ws/notifymessage.ws");} else { websocket = new SockJS("ws://"+websocketPath+"/ws/notifymessage.ws");}websocket.onopen = function (evnt) {};websocket.onmessage = function (evnt) { console.log(evnt);};websocket.onerror = function (evnt) {};websocket.onclose = function (evnt) {}

注意web.xml中配置DispatcherServlet控制器

仿虎嗅网源码,.net vscode调试,ubuntu查看应用程序版本,tomcat报错error,sqlite根据行数显示,wordpress 插件 论坛,vue前端框架仿vscode,小孩晚上爬虫子,接口php代码,seo标题优化技巧seo顾问,织梦妈妈论坛网站源码,网页badrequest,css帖子模板,小额信贷管理系统源码,人人商城小程序拼团需要lzw

spring-servlet.xml空文件

spring org.springframework.web.servlet.DispatcherServletcontextConfigLocation/WEB-INF/spring-servlet.xml 1 spring *.ws

相关文章:

微信开发消息推送实现技巧(附代码)

一个基于WebSocket的WEB消息推送框架

.NET 微信开发自动内容回复实例代码

如果觉得《在Java中通过websocket实现消息推送的实现代码详解》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。