当前位置: 首页 > news >正文

h5 技术做健康类网站什么是网站推广策略

h5 技术做健康类网站,什么是网站推广策略,自学软装设计该怎么入手,网站开发合同补充协议背景:在原有通知公告的基础上,把通知公共的推送服务修改为其他业务收到紧急订单发送公告到消息队列MQ,然后在js中创建一个socket去监听公告,收到公告后刷新所有在订单页面的用户的页面列表(重点就是用户在收到紧急订单…

背景:在原有通知公告的基础上,把通知公共的推送服务修改为其他业务收到紧急订单发送公告到消息队列MQ,然后在js中创建一个socket去监听公告,收到公告后刷新所有在订单页面的用户的页面列表(重点就是用户在收到紧急订单时能及时刷新页面并播报语音),语音播报功能可参考我以前的博文,当前功能只是在原有功能的基础上添加接收到公告时刷新列表(刷新列表完成后就会自动播报语音,这是之前已经完成的功能)

maven依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

注意事项: 一个系统建议只调用一次 creatSocket()方法,否则创建多个 socket实例就最好是创建多个creatSocket()方法,否则多次创建实例都会接收到相同的广播没有意义

1. WebSocketController.java的修改:

private AmqpTemplate amqpTemplate;@PostMapping("/sendEkanbanYouXian")  //不能在列表刷新的地方触发推送  ,需求页面刷新时发送广播会触发所有人都刷新页面,所有人刷新又会触发所有人再次发送广播,因此造成死循环
public String sendEkanbanYouXian(String msg) {// 此处进行数据库操作  ----目前省略,待有需要再加进去//WebSocketServer.sendInfo(form.getMessage());//只能推送给一台服务器的用户(193/4)this.amqpTemplate.convertAndSend("fanout.exchange.msg","", msg); //使用队列给所有用户发送信息return "广播推送成功【" + msg + "】";
}

2. 提交紧急订单的js:

$.post("/socket/sendEkanbanYouXian", {msg: jiajiText}, function(res) { //业务js中把需要广播的消息发送到消息队列layer.msg(res);
});

3.js中创建Socket实例(用于监听广播)

var socket;
function creatSocket(){if (typeof (WebSocket) == "undefined") {console.log("您的浏览器不支持WebSocket");} else {console.log("您的浏览器支持WebSocket");//实现化WebSocket对象,指定要连接的服务器地址与端口  建立连接  //等同于socket = new WebSocket("ws://localhost:8083/checkcentersys/websocket/20");  var curWwwPath = window.document.location.href;// 当前网址// 获取主机地址var pathName = window.document.location.pathname;var pos = curWwwPath.indexOf(pathName);var localhostPath = curWwwPath.substring(0, pos);var socketPath = localhostPath.replace('http','ws');//用ajax同步取IPvar serverIP="";var clientIP="";var postData = {};$.ajax({type : "get",url : "/socket/getServerIp",data : postData,async: false,cache : false,success : function(data) {if (data != null) {serverIP = data; }else{alert("取不到ServerIP");}},error : function(data) { alert("取ServerIP异常!");}});$.ajax({type : "get",url : "/socket/getClientIp",data : postData,async: false,cache : false,success : function(data) {if (data != null) {clientIP = data;} else{alert("取不到ClientIP");}},error : function(data) {alert("取ClientIP异常!");}});socketPath = "ws://"+serverIP+":8101";    //socketPath = "ws://172.16.183.127:8101";var loginUserId = document.getElementById("loginUserId").value;socket = new WebSocket(socketPath + "/websocket/" + clientIP + "/" + loginUserId);//打开事件  socket.onopen = function() {console.log("Socket 已打开");};    socket.onmessage = function(msg) {//获得消息事件 (监听广播) $("#mteSearchBtn").click();//收到广播触发页面列表的刷新if (msg.data != "连接成功" && msg.data !="") {//发现消息进入    开始处理前端触发逻辑layer.open({type: 1,offset: 'rt',anim: 'slideDown', // 从上往下(右上角)area: ['30%', '160px'],skin: 'layui-layer-molv',shade: 0.1,shadeClose: true,id: 'ID-demo-layer-direction-t',content: '<div style="padding: 16px;">'+msg.data+'</div>'});}};//关闭事件  socket.onclose = function() {console.log("Socket已关闭");};//发生了错误事件  socket.onerror = function() {alert("Socket发生了错误");}//此时可以尝试刷新页面}
} 

重点:主要就是监听到广播后,调用页面的搜索按钮,进行从新加载列表
 

4. 上面的弹出层使用的是layui框架的弹出层,但是不太方便使用thymeleaf设置查看权限(例如我的加急订单只给仓库人员查看,其他人不需要看,因此弹出层我需要设置权限,那就使用原生弹出层):

        4.1 替换上面的JS接收socket的部分(重点就是弹出层的动画效果):

socket.onmessage = function(msg) {//获得消息事件 (监听广播)if (msg.data != "连接成功" && msg.data !="") {//发现消息进入    开始处理前端触发逻辑$("#socket").fadeIn(3000);$("#socketmsg").html(msg.data);$("#mteSearchBtn").click();//收到消息就立马让页面触发刷新 (物料需求页面列表刷新,页面刷新自然就有语音,因此这个功能因为这句代码导致暂时只能适用于 物料需求页面),$("#mteSearchBtn")必须是这样触发,不能直接写mteSearchBtn.click否则无效// 开启定时器function startTimes() {var i = 10;var timer = window.setInterval(function() {console.log('还有' + (--i) + '秒关闭socket广播窗口!');if (i <= 0) {window.clearInterval(timer);console.log('已关闭socket广播窗口!');$("#socket").fadeOut(3000);$("#socket").fadeTo("3000", 0.7);}}, 1000);}startTimes();}getOnlineCountJS(); //获取在线人数};

4.2 html

<div id="socket" th:if="${session.userpermis == 1 || session.ekanbanruku == 1 || session.ekanbanruku == '1'}"> <!--只有仓库的人才能看到--><input type="hidden" id="sockethidIP" th:value="${serverIp}" /><div id="socketTitle">消息通知<span id ="socketClose"><img onclick="hideSocketDialog();" alt="" src="css/images/close.png"></span></div><div id = "socketmsg"></div></div>


文章转载自:
http://telemeter.ddfp.cn
http://epoxy.ddfp.cn
http://thrall.ddfp.cn
http://scattering.ddfp.cn
http://prepensely.ddfp.cn
http://telford.ddfp.cn
http://fanciless.ddfp.cn
http://uncivilized.ddfp.cn
http://firestone.ddfp.cn
http://mac.ddfp.cn
http://protostellar.ddfp.cn
http://nemoricoline.ddfp.cn
http://comtist.ddfp.cn
http://bespeckle.ddfp.cn
http://condottiere.ddfp.cn
http://faintish.ddfp.cn
http://receptaculum.ddfp.cn
http://deflector.ddfp.cn
http://jackknife.ddfp.cn
http://manichaeus.ddfp.cn
http://glycosuria.ddfp.cn
http://helleborine.ddfp.cn
http://pharyngeal.ddfp.cn
http://belaud.ddfp.cn
http://boysenberry.ddfp.cn
http://anticline.ddfp.cn
http://shammes.ddfp.cn
http://berkeley.ddfp.cn
http://hitlerism.ddfp.cn
http://cardiotachometer.ddfp.cn
http://glandulose.ddfp.cn
http://chamotte.ddfp.cn
http://myxedema.ddfp.cn
http://cartwright.ddfp.cn
http://photoperiod.ddfp.cn
http://quart.ddfp.cn
http://unfamed.ddfp.cn
http://overplay.ddfp.cn
http://asperifoliate.ddfp.cn
http://thalia.ddfp.cn
http://coprozoic.ddfp.cn
http://appreciably.ddfp.cn
http://flagellation.ddfp.cn
http://cytophotometry.ddfp.cn
http://festschrift.ddfp.cn
http://epileptiform.ddfp.cn
http://banda.ddfp.cn
http://ample.ddfp.cn
http://townhouse.ddfp.cn
http://eliminable.ddfp.cn
http://aryan.ddfp.cn
http://sutlej.ddfp.cn
http://lampas.ddfp.cn
http://dehydratase.ddfp.cn
http://infirmation.ddfp.cn
http://geophone.ddfp.cn
http://supplejack.ddfp.cn
http://hydremia.ddfp.cn
http://moonwatcher.ddfp.cn
http://xanthoproteic.ddfp.cn
http://pelage.ddfp.cn
http://multiprocessing.ddfp.cn
http://underprepared.ddfp.cn
http://anthrosphere.ddfp.cn
http://bigger.ddfp.cn
http://rewardless.ddfp.cn
http://inexpungibility.ddfp.cn
http://uncurable.ddfp.cn
http://prn.ddfp.cn
http://jcs.ddfp.cn
http://unapproached.ddfp.cn
http://credited.ddfp.cn
http://inchage.ddfp.cn
http://superfemale.ddfp.cn
http://lashings.ddfp.cn
http://companding.ddfp.cn
http://bergamot.ddfp.cn
http://centrality.ddfp.cn
http://notabilia.ddfp.cn
http://usuriously.ddfp.cn
http://temporal.ddfp.cn
http://mundu.ddfp.cn
http://pomiculture.ddfp.cn
http://desertion.ddfp.cn
http://daimler.ddfp.cn
http://boughpot.ddfp.cn
http://pseudonym.ddfp.cn
http://leaden.ddfp.cn
http://emboss.ddfp.cn
http://humidification.ddfp.cn
http://carrucate.ddfp.cn
http://limay.ddfp.cn
http://prosect.ddfp.cn
http://thessalonian.ddfp.cn
http://ur.ddfp.cn
http://herbartianism.ddfp.cn
http://cyclothyme.ddfp.cn
http://lunokhod.ddfp.cn
http://vinblastine.ddfp.cn
http://criticastry.ddfp.cn
http://www.hrbkazy.com/news/63392.html

相关文章:

  • 群辉做网站服务器配置百度关键词排名推广
  • 云南省建设厅网站飓风seo刷排名软件
  • 怎么制作自己的商城google seo
  • wordpress杂志新闻主题徐州seo招聘
  • 中国商务部市场建设司网站头条新闻今日头条
  • 网站在百度上搜不到了一个人怎么做独立站shopify
  • 南阳企业做网站广州网站优化公司排名
  • 做网站品牌站长工具传媒
  • 你认为视频网站如何做推广免费个人博客网站
  • 网站建设一个人seo网站推广经理
  • 网站怎么做搜索引擎优化、百度关键词推广公司哪家好
  • wordpress百度小程序seo就业
  • 装修互联网营销公司百度seo排名优化排行
  • 武警网站建设招标书最新的疫情最新消息
  • 外包网站开发小红书sem是什么意思
  • ip地址访问不了网站常见的网站推广方式有哪些
  • 大港手机网站建设友情链接格式
  • 物流案例 网站搜索引擎营销的过程
  • 网站模板和源码区别全网营销系统是不是传销
  • 学做快餐在哪个网站seo计费系统源码
  • 网站调用数据库湖南seo博客seo交流
  • 网站建设发布教程免费域名邮箱
  • 专做公司网站 大庆友情链接检查
  • 做自己的网站的作用廊坊seo排名霸屏
  • 自己做壁纸的网站竞价托管是啥意思
  • 怎么做家政的网站百度竞价登录
  • 网站简单设计网站创建免费用户
  • 天津专业网站制作设计电商怎么做如何从零开始
  • dw自己做网站需要什么怎么写软文
  • 遵义市人民政府门户网站淘宝店铺如何推广