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

公司制作网站费用茶叶价格网站建设

公司制作网站费用,茶叶价格网站建设,浙江网站建设哪家专业,海外贸易平台有哪些可复制现成代码直接使用&#xff01;&#xff01; 1.下边的例子演示了创建10个WebSocket 实例&#xff0c;当其中某一个连接失败时&#xff0c;会自动进行重连 <template><div></div> </template><script setup> import { ref, reactive, onMo…

可复制现成代码直接使用!!

1.下边的例子演示了创建10个WebSocket 实例,当其中某一个连接失败时,会自动进行重连

<template><div></div>
</template><script setup>
import { ref, reactive, onMounted } from "vue";
const person = reactive({});
const wsConnections = ref([]);
onMounted(() => {//初始化创建一个ip数组 遍历过后调用创建十个sokect实例const urls = ["wss://url1","wss://url2","wss://url3","wss://url4","wss://url5","wss://url6","wss://url7","wss://url8","wss://url9","wss://url10",];wsConnections.value = urls.map((url, index) => new WebSocketConnection(url, index));//以上是针对初始化创建十个soket  如初始化只创建一个sokey只需直接new实例就行
//   new WebSocketConnection(传入ip)  //只创建一个连接
});
class WebSocketConnection {constructor(url, index) {//连接的url地址this.url = url;this.ws = new WebSocket(url);this.bindEvents(); //创建实例过后的回调}//监听回调(连接成功、错误、断开、接收消息)bindEvents() {this.ws.onopen = () => {console.log(`${this.url} 连接成功.`);};this.ws.onerror = (error) => {console.error(`连接错误 ${this.url}: ${error}`);};this.ws.onclose = (e) => {console.log(`${this.url} 连接关闭`);if (e.code !== 1000) {console.log(`Reconnecting ${this.url}...`);//重连 此处可以加个setTimeout 多少秒后再重连this.reconnect();}};}//重连reconnect() {this.ws = new WebSocket(this.url);this.bindEvents();}
}
</script>
<style scoped lang='less'>
</style>

2.定时给后端发送消息

<template><div></div>
</template><script setup>
import { ref, reactive, onMounted, onUnmounted } from "vue";
const person = reactive({});
const wsConnections = ref([]);
onMounted(() => {//初始化创建一个ip数组 遍历过后调用创建十个sokect实例const urls = ["wss://url1","wss://url2","wss://url3","wss://url4","wss://url5","wss://url6","wss://url7","wss://url8","wss://url9","wss://url10",];wsConnections.value = urls.map((url, index) => new WebSocketConnection(url, index));//以上是针对初始化创建十个soket  如初始化只创建一个sokey只需直接new实例就行//   new WebSocketConnection(传入ip)  //只创建一个连接
});
class WebSocketConnection {constructor(url, index) {//连接的url地址this.url = url;this.ws = new WebSocket(url);this.bindEvents(); //创建实例过后的回调this.startSending(); //给后端发送消息}//监听回调(连接成功、错误、断开、接收消息)bindEvents() {this.ws.onopen = () => {console.log(`${this.url} 连接成功.`);};this.ws.onerror = (error) => {console.error(`连接错误 ${this.url}: ${error}`);};this.ws.onclose = (e) => {console.log(`${this.url} 连接关闭`);if (e.code !== 1000) {console.log(`Reconnecting ${this.url}...`);//重连 此处可以加个setTimeout 多少秒后再重连this.reconnect();}};}//重连reconnect() {this.ws = new WebSocket(this.url);this.bindEvents();}//   给后端发送消息startSending() {this.interval = setInterval(() => {if (this.ws.readyState === WebSocket.OPEN) {this.ws.send("发给后端的");}}, 5000);}//   停止发消息时调用stopSending() {clearInterval(this.interval);}
}
onUnmounted(() => {wsConnections.value.forEach((connection) => {connection.stopSending(); // 停止定时消息connection.ws.close(); // 关闭WebSocket连接});
});
</script>
<style scoped lang='less'>
</style>

2.将十个链接收到的数据全部存在vuex 其他组件只使用第一个链接的数据

import { createStore } from 'vuex'export default createStore({state: {messages: []},mutations: {setMessages(state, payload) {// 我们这里假设payload的格式为 { index: n, message: msg }state.messages[payload.index] = payload.message},},actions: {}
})
修改WebSocketConnection 类,使其接收到消息的时候调用 setMessages mutation:
import { ref, onMounted, onUnmounted } from 'vue';
import store from '@/store'class WebSocketConnection {constructor(url, index) {this.url = url;this.index = index;this.ws = new WebSocket(url);this.bindEvents();this.startSending();}bindEvents() {// ...其它代码略 看上面this.ws.onmessage = (message) => {// 当接收到数据时,将数据保存到 Vuexstore.commit('setMessages', { index: this.index, message: message.data });};}// ...其它代码略 看上面
}// 在 onMounted 钩子函数中创建WebSocket连接
onMounted(() => {const urls = ['wss://url1', 'wss://url2', 'wss://url3', 'wss://url4', 'wss://url5', 'wss://url6', 'wss://url7', 'wss://url8', 'wss://url9', 'wss://url10'];wsConnections.value = urls.map((url, index) => new WebSocketConnection(url, index));
});

然后,在其他组件中以这种方式使用第一个Websocket的消息:

<template><div>Received Message: {{ message }}</div>
</template><script setup>
import { computed } from 'vue'
import { useStore } from 'vuex'
const store = useStore()
const message = computed(() => store.state.messages[0]) // 获取第一个消息</script>

3.使用pinia将十个链接收到的数据全部存了 其他组件只使用第一个链接的数据

import { defineStore } from "pinia"
export const useUsersStore = defineStore('users', {// 其它配置项state: () => {return {messages: [],};},getters: {},actions: {setMessage(payload) {this.messages[payload.index] = payload.messages}}
})

然后,在 WebSocketConnection 类中调用 setMessage 来储存数据:

import { ref, onMounted, onUnmounted } from 'vue';
import { useUsersStore } from "@/store/user.js";class WebSocketConnection {constructor(url, index) {this.url = url;this.index = index;this.ws = new WebSocket(url);this.store = useUsersStore();this.bindEvents();this.startSending();}bindEvents() {// ...同上面this.ws.onmessage = (message) => {// 收到信息后,将其存储在Pinia中this.store.setMessage({ index: this.index, message: message.data });};}// ...同上面e...
}onMounted(() => {const urls = ['ws://url1', 'ws://url2', 'ws://url3', 'ws://url4', 'ws://url5', 'ws://url6', 'ws://url7', 'ws://url8', 'ws://url9', 'ws://url10'];wsConnections.value = urls.map((url, index) => new WebSocketConnection(url, index));});onUnmounted(() => {wsConnections.value.forEach(connection => {connection.stopSending();  connection.ws.close();  });});

然后在其他组件中可以像这样使用第一个连接收到的数据:

<template><div>Received Message: {{ message }}</div>
</template><script setup>
import { computed } from 'vue'
import { useUsersStore } from "@/store/user.js";const store = useUsersStore ()const message = computed(() => store.messages[0]) // 使用第一条消息</script>

http://www.yayakq.cn/news/140692/

相关文章:

  • 河源市住房建设局网站从0开始做网站
  • 建设部资质升级网站集约化网站建设
  • 支持付费下载系统的网站模板或建站软件网站开发中 登录不上了
  • 制作网站的公司还能赚钱吗做一网站需要哪些语言
  • 网站开发不满意网页上一页下一页代码
  • pc端网站怎么做自适应影楼网站推广
  • 做网站为什么需要营业执照欣宝儿在什么网站做直播
  • 网站建设与维护课程总结专业制作广告
  • 江苏外贸网站建设东莞最好的网站建设
  • 广州网站建设在线外管局网站做延期收汇报告
  • 建设一个营销网站的费用沈阳网站哪家公司做的好
  • 用ps做网站的首页郑州一建招聘
  • 潍坊做网站好看学做衣服网 缤纷网站
  • 同一个域名在一个服务器做两件网站如何管理网站页面设计
  • 网站模板中文dedecms网站备份
  • 设计国外网站有哪些免费找精准客户软件
  • 做网站怎样租用虚拟空间茶叶公司网站建设策划书
  • 做公司网站备案可以个人网店交易平台网站建设
  • 域名推荐网站全网营销整合营销
  • 网站制作深什么网站好
  • 平面设计网站源码徐州10年网站建设 推广公司
  • 校园网站建设和管理工作制度福州seo技巧培训
  • 嘉兴网站制作多少钱企业解决单身问题方案
  • 合肥做网站的公番禺网站制作 优帮云
  • 电商 网站 降低 跳出率 措施 效果开个小公司需要多少钱注册
  • 营销型网站建设托管网店运营管理与营销推广
  • 济宁网站建设方面好的做详情页的网站有哪些
  • wordpress自带站内搜索功能做图书网站赚钱吗
  • 做民宿怎么登录网站网站转化低的原因
  • 深圳做手机网站天津网上办事大厅官网入口