在VUE中使用websocket

websocket概念

1、WebSocket是HTML5下一种新的协议,在单个TCP连接上进行全双工通信

2、Websocket是一个持久化的协议,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,能更好的节省服务器资源和带宽并达到实时通讯的目的。

websocket前端代码实现

javascript 复制代码
data() {
return {
	// 后面 webSocket 是后台设定的接口地址,token是你这个前台的识别码id。
    // 用于区分,比如你多个地方链接后台,后台推送数据的时候需要根据这个id不同,给对应的人推送,不然就推送到所有建立链接的网页上了      
    sockPath: 'ws://' + '172.16.xx.100:9207/websocket/' + getToken(), // 后台地址
    socket: null,
}
},
created() {
	this.websoketInit();
},
method() {
	websoketInit() {
	  if (typeof WebSocket === "undefined") {
        alert("您的浏览器不支持socket");
      } else {
        this.socket = new WebSocket(this.sockPath); // 实例化

        this.socket.onopen = this.websocketOnOpen; // 监听 连接

        this.socket.onerror = this.websocketOnError; // 监听 错误信息

        this.socket.onmessage = this.websocketOnMessage; // 监听 消息,注:方法后面不能加空括号(),否则就接收不到数据了

        this.socket.onclose = this.websocketOnClose; // 监听 关闭
      }
	},
	/** 连接 成功 时的回调函数 */
    websocketOnOpen() {
      console.log("websocket 连接成功");
    },
    /** 连接 错误 时的回调 */
    websocketOnError(err) {
      console.log("websocket 连接错误 " + err);
    },
    //后台消息推送过来,接收的函数,参数为后台推过来的数据。
    websocketOnMessage(msg) {
      // json数据使用JSON.parse():报错 Unexpected number in JSON at position 106
      // 有浏览器是不兼容JSON这个对象的,或者有的里面有JSON.parse解析不了的东西,所以暂时还是使用: eval("("+data+")");
      var temp = eval("(" + msg.data + ")");
      // js判断数组或对象
      if (temp.hasOwnProperty("name")) {
        console.log('name值', name)
      }
    },
    /** 连接 关闭 的回调 */
    websocketOnClose(event) {
      // socket是链接的实例,close就是关闭链接
      this.socket.close();
      console.log("断开链接成功");
    },
},
相关推荐
程序员黑豆5 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
To_OC6 小时前
踩了个 TS 的坑之后,我终于把 type 和 interface 掰明白了
前端·react.js·typescript
GreenTea6 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
浮生望6 小时前
前端API工程化:用 Mock 数据与 Axios 配置实现独立于后端的并行开发
前端
万少7 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
波波0077 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
Brown.alexis8 小时前
es6知识点1-自备使用
前端·ecmascript·es6
小爬的老粉丝9 小时前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
计算机魔术师9 小时前
新兴多智能体系统的模式与问题
前端
用户0595401744610 小时前
AI Agent 上下文污染踩坑实录:用 pytest + Redis 揪出 3 类记忆串号 bug,排查 6 小时
前端·css