先给大家介绍下vue发送websocket请求和http post请求
直接上代码:
pdf.vue
<script> import SockJS from 'sockjs-client'; import Stomp from 'stompjs'; import qs from "qs" export default { name: "pdf", data() { return { newsData: [], tagGuid_mx: "", tagGuid_4AA_Ia: "", tagGuid_4AA_P: "", tagGuid_4AA_Q: "", 49 tagGuid_1AA_6_Ib: "", tagGuid_1AA_6_Ic: "", tagGuid_pdfwd: "", tagGuid_pdfsd: "", stompClient: '', timer: '', visibilityHeZha: "hidden", visibilityFenZha: "hidden", hezhaData:[] } }, methods: { initWebSocket() { this.connection(); let that = this; // 断开重连机制,尝试发送消息,捕获异常发生时重连 this.timer = setInterval(() => { try { that.stompClient.send("test"); } catch(err) { console.log("断线了: " + err); that.connection(); } }, 5000); }, connection() { // 建立连接对象 let socket = new SockJS('http://XXX.XX.XX.XXX:8081/energy-system-websocket'); // 获取STOMP子协议的客户端对象 this.stompClient = Stomp.over(socket); // 定义客户端的认证信息,按需求配置 let headers = { access_token: "92c31bd5-ae43-4f25-9aad-c4eb1a92d61d" // Authorization: '' } // 向服务器发起websocket连接 this.stompClient.connect(headers, () => { this.stompClient.subscribe('/user/topic/data', (msg) => { // 订阅服务端提供的某个topic console.log('广播成功') // console.log(msg); // msg.body存放的是服务端发送给我们的信息 console.log(msg.body); this.newsData = JSON.parse(msg.body); }, headers), this.stompClient.subscribe('/user/topic/alarm', (msg) => { // 订阅服务端提供的某个topic console.log('广播告警成功') //console.log(msg); // msg.body存放的是服务端发送给我们的信息 console.log(msg.body); this.newsData = JSON.parse(msg.body); }, headers); this.stompClient.subscribe('/user/topic/cmd_ack', (msg) => { // 订阅服务端提供的某个topic console.log('下控指令应答成功') //console.log(msg); // msg.body存放的是服务端发送给我们的信息 console.log(msg.body); this.newsData = JSON.parse(msg.body); }, headers); this.stompClient.subscribe('/user/topic/response', (msg) => { //指令的应答(仅表示服务端接收成功或者失败) console.log('SEND指令的应答成功') //console.log(msg); // msg.body存放的是服务端发送给我们的信息 console.log(msg.body); this.newsData = JSON.parse(msg.body); this.newsData = this.newsData.data; console.log(this.newsData); for(var i = 0; i < this.newsData.length; i++) { //母线uab if(this.newsData[i].tagGuid == "a3a95bf3-fef8-454e-9175-19a466e40c3d") { this.tagGuid_mx = this.newsData[i].value != '' "" } //电容柜4AA_Ia if(this.newsData[i].tagGuid == "4cf6e256-6c3a-4853-a087-dfd263916dab") { this.tagGuid_4AA_Ia = this.newsData[i].value } //电容柜4AA_P if(this.newsData[i].tagGuid == "52e8265a-0a20-4e3b-a670-14a8df373bf7") { this.tagGuid_4AA_P = this.newsData[i].value } //电容柜4AA_Q if(this.newsData[i].tagGuid == "ef369a17-0bbd-4295-8ac7-816c23fcb065") { this.tagGuid_4AA_Q = this.newsData[i].value != '' "ead49446-07f9-43b7-a4ce-cd974d53728e") { this.tagGuid_pdfwd = this.newsData[i].value } //配电房湿度 if(this.newsData[i].tagGuid == "baaf1733-124e-46fd-9d58-c069b747317a") { this.tagGuid_pdfsd = this.newsData[i].value } } }, headers); this.stompClient.send("/app/monitor/subTagGuid", // # 订阅需要监控的测点ID headers, JSON.stringify({ "stationCode": "00013", "tagGuids": [ "a3a95bf3-fef8-454e-9175-19a466e40c3d", // "4cf6e256-6c3a-4853-a087-dfd263916dab", // "52e8265a-0a20-4e3b-a670-14a8df373bf7", // "ef369a17-0bbd-4295-8ac7-816c23fcb065", //334 "baaf1733-124e-46fd-9d58-c069b747317a" ] }) ) //用户加入接口 }, (err) => { // 连接发生错误时的处理函数 console.log('失败') console.log(err); }); }, //连接 后台 disconnect() { if(this.stompClient) { this.stompClient.disconnect(); } }, // 断开连接 changeColor(evt) { this.rect.setAttributeNS(null, "fill", "blue") }, shl3aa4() { this.visibilityHeZha = this.visibilityHeZha == "visibility" "hidden" : "visibility"; this.visibilityFenZha = this.visibilityFenZha == "visibility" "hidden" : "visibility"; }, shl3aa42() { setTimeout(() => { this.visibilityHeZha = "hidden"; this.visibilityFenZha = "hidden"; }, 1200) }, hezha() { //3#楼3AA-4_合闸 this.$axios.post("/energy-system/auth/monitor/ykcmd", { checkUser: "admin", checkPass: "123456", stationCode:"00013", tagGuid: "89d1d312-17be-4d20-8471-baa08ba734e0", value: 1 }) .then(res => { this.hezhaData=JSON.parse(res.config.data) if(this.hezhaData.tagGuid=="89d1d312-17be-4d20-8471-baa08ba734e0" && this.hezhaData.value==1){ alert("合闸成功!"); }else{ alert("合闸失败!请联系管理员"); }379 }) .catch(error => { console.log(error) }) }, fenzha() { alert("分闸"); //3#楼3AA-4_分闸 } }, mounted() { this.initWebSocket(); }, beforeDestroy: function() { // 页面离开时断开连接,清除定时器 this.disconnect(); clearInterval(this.timer); }, created() { } } </script>
在main.js设置全局http地址:
Axios.defaults.baseURL = 'http://XXX.XXX.XX.XXX:9001'; Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
在main.js中设置header中token值:
// 添加请求拦截器 Axios.interceptors.request.use(function(config) { config.headers.access_token = "add7c097-f12b-40fe-8e48-6fe1f2120fa5"; // config.headers.Authorization = localStorage.token; //将token设置成请求头 console.log("请求============" + config); // 在发送请求之前做些什么 return config; }, function(error) { // 对请求错误做些什么 return Promise.reject(error); });
数据刷起来!
ps:下面给大家介绍下vue websocket 请求
首先写一个公共方法
socket.js
function getSocket(url, params, callback) { let socket; if (typeof (WebSocket) === 'undefined') { console.log('您的浏览器不支持WebSocket'); } else { console.log('您的浏览器支持WebSocket'); // 初始化 WebSocket 对象,指定要连接的服务器地址与端口建立连接 socket = new WebSocket(url); // 打开事件 socket.onopen = function() { console.log('Socket 已打开'); socket.send(params); }; // 获得消息事件 socket.onmessage = function(msg) { // 发现消息进入, 开始处理前端触发逻辑 callback(msg, socket); }; // 关闭事件 socket.onclose = function() { console.log('Socket 已关闭'); }; // 发生了错误事件 socket.onerror = function() { console.log('Socket 发生了错误,请刷新页面'); // 此时可以尝试刷新页面 }; } } export { getSocket };
使用
test.vue
<script> import {getSocket} from '@/utils/socket.js'; export default { data() { return { wsData: {}, // 保存 websocket 数据对象 form: { // 表单 name: '', age: '' } } }, beforeDestroy() { this.wsData.close(); // 关闭 websocket }, created() { this.getSocketData(); }, methods: { // 获取数据 getSocketData() { let params = this.form; getSocket( `ws://path`, JSON.stringify(params), (data, ws) => { console.log(data, ws); // 保存数据对象, 以便发送消息 this.wsData = ws; } ); }, // 发送数据 sendSocketData() { let params = this.form; params.name = 'xx'; params.age= '18'; this.wsData.send(JSON.stringify(params)); } } } </script>
总结
以上所述是小编给大家介绍的vue发送websocket请求和http post请求的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]