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

网站建设硬件预算全国疫情排行榜最新情况列表

网站建设硬件预算,全国疫情排行榜最新情况列表,昆明网站建设技术研发中心,商贸公司网站建设极致发烧📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…

📢 Vue 3 + WebSocket 实战:公司通知实时推送功能详解

📌 收藏 + 点赞 + 关注,项目中要用到推送功能时就不怕找不到了!

实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户页面立即收到消息提示。本文将用 Vue 3 + WebSocket 实现一个公司通知实时推送功能,结构清晰、代码实用。


📦 一、完整示例源码

🧩 1. 通用 WebSocket 封装(useWebSocket.ts

// composables/useWebSocket.ts
import { ref, onUnmounted } from 'vue';export function useWebSocket(url: string) {const socket = ref<WebSocket | null>(null);const messages = ref<string[]>([]);const isConnected = ref(false);const connect = () => {socket.value = new WebSocket(url);socket.value.onopen = () => {isConnected.value = true;console.log('✅ WebSocket 已连接');};socket.value.onmessage = (event) => {messages.value.push(event.data);console.log('📩 收到通知:', event.data);};socket.value.onclose = () => {isConnected.value = false;console.warn('❌ WebSocket 已断开,准备重连');setTimeout(connect, 3000); // 断线重连};socket.value.onerror = (error) => {console.error('⚠️ WebSocket 错误:', error);};};const send = (msg: string) => {if (socket.value?.readyState === WebSocket.OPEN) {socket.value.send(msg);}};const close = () => {socket.value?.close();};onUnmounted(() => {close();});connect();return {isConnected,messages,send,close,};
}

🧩 2. 页面组件中使用(如 NoticePush.vue

<template><div><p>连接状态:<b :style="{ color: isConnected ? 'green' : 'red' }">{{ isConnected ? '已连接' : '断开连接' }}</b></p><ul><li v-for="(msg, index) in messages" :key="index">📨 {{ msg }}</li></ul></div>
</template><script setup lang="ts">
import { useWebSocket } from '@/composables/useWebSocket';const { isConnected, messages } = useWebSocket('wss://example.com/ws/notice');
</script>

✅ 注意:服务端需实现 WebSocket 服务,并在有新通知时主动推送至 /ws/notice 端口。


🧭 二、逐步讲解:每行代码都懂的 WebSocket 实践

📌 1. 为什么使用 WebSocket 而非轮询?

  • 轮询会定期发请求,浪费资源;
  • WebSocket 是“事件驱动”,一旦服务端有通知立即推送,秒级响应

📌 2. 组件封装优势(useWebSocket

封装功能作用说明
自动连接页面加载后自动建立连接
自动重连连接断开后 3 秒自动重试
消息管理使用 ref<string[]> 存消息
错误监听提示连接异常或断开
可复用性强多个页面调用不同通知通道

📌 3. 实际项目中消息内容格式?

可以根据需要调整成结构化 JSON:

socket.value.onmessage = (event) => {const data = JSON.parse(event.data);// 如:{ type: 'notice', content: '系统将于今晚维护' }messages.value.push(data.content);
};

📌 4. 提醒用户注意通知(结合 UI 提示)

结合 Element Plus / Naive UI 提示弹窗:

import { ElNotification } from 'element-plus';socket.value.onmessage = (event) => {const data = JSON.parse(event.data);ElNotification({title: '新通知',message: data.content,type: 'info',});
};

✅ 三、总结:公司通知推送的实现关键点

步骤内容说明
建立连接通过 WebSocket 实时建立持久连接
消息监听接收后端推送的公司通知并展示
断线处理页面关闭前关闭连接,异常时自动重连
结构封装封装成 useWebSocket 提高可维护性
界面提示搭配 UI 提示或弹窗增强用户体验

🧠 提示

✅ 建议配合服务端采用心跳机制 + token 校验,防止连接伪造或长时间失效。


下期预告:

  • 📥添加 心跳机制 ;

欢迎继续留言,我可以继续补充后续内容!


http://www.dtcms.com/wzjs/323182.html

相关文章:

  • 贺州网站建设公司品牌推广经典案例
  • 公司网站域名实名认证怎么做app拉新推广代理平台
  • .net双拼做公司网站2022年新闻热点摘抄
  • 在线企业建站服务seo和sem是什么意思啊
  • 专业网站建设套餐网页怎么做出来的
  • 字体排版设计网站百度搜索什么关键词排名
  • 免费设计logo的软件有哪些seo职业技能培训班
  • 网站 授权书下载百度2023最新版
  • 站长工具seo下载sem代运营推广公司
  • 蒙icp备 网站建设合肥seo报价
  • 山西做网站多少钱网络营销策略分析案例
  • 企业网站建设公司哪家靠谱友情链接查询友情链接检测
  • 石岩做网站哪家好深圳百度推广客服电话多少
  • 创鑫云网络杭州seo排名优化
  • 那里可以免费做网站世界杯排名
  • 网站公司 模板网络营销主要学什么
  • 贵阳做网站开发科技有限公司竞价推广网络推广运营
  • 江苏常州疫情最新消息今天封城了北京seo技术
  • 自适应网站建设百度seo高级优化
  • 深圳装饰公司排名黄山搜索引擎优化
  • 青岛定制网站建设推广成都seo优化公司
  • 上海微信小程序网站建设品牌推广百度seo
  • 公司怎样建设阿里巴巴网站短视频营销策划方案
  • 北京做兼职的网站网站优化靠谱seo
  • 河南省安阳市建设银行网站宝鸡百度seo
  • wordpress cpu100%下载优化大师app
  • 福建省建设执业资格管理注册中心网站自己做网络推广怎么做
  • 深圳外贸网站制作苏州整站优化
  • 营销型网站制作步骤五个什么是关键词搜索
  • 海南省住房和城乡建设厅网站网上版网站推广模式