位置: IT常识 - 正文

Vue连接WebSocket后,监听消息并读取消息内容(onmessage事件),解决将内容赋值到data的属性失败的问题(vuecli websocket)

编辑:rootadmin
Vue连接WebSocket后,监听消息并读取消息内容(onmessage事件),解决将内容赋值到data的属性失败的问题 技术栈前端Vue (包括一些组件、中间件)后端分布式微服务

推荐整理分享Vue连接WebSocket后,监听消息并读取消息内容(onmessage事件),解决将内容赋值到data的属性失败的问题(vuecli websocket),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vuecli websocket,web socket vue,vue建立websocket连接,websocket在vue中怎么用,vue-websocket,vue.js websocket,vuecli websocket,vue.js websocket,内容如对您有帮助,希望把文章链接给更多的朋友!

这里就不再详述后端是怎么开发通信服务端的了,因为我主要是后端开发,前端开发花的时间几乎是后端的两倍还要多(其实比较简单,只是自己前端真的不得行🤪)

最近在开发项目里的一个IM(实时通信)模块功能的时候发现,通过服务端转发客户端消息的时候,前端组件的数据一直没办法正常刷新,耗了很久,去查结果发现网上都没有我想要的答案(都是千篇一律的答案),最后还是没解决,那好吧,只能🪜看看了

Vue连接WebSocket后,监听消息并读取消息内容(onmessage事件),解决将内容赋值到data的属性失败的问题(vuecli websocket)

好了,不废话了,直接上代码解决吧:

原来写法 socket.onmessage = function (event) {...} 新的写法 socket.onmessage = (event) => {...}

简单代码演示:

<template><div><p>{{tempContent}}</p></div></template><script>export default { name: "Test", data() { return { socket: null, // 这里定义一个变量,因为后面有其他方法也要用到这个socket通道通信 tempContent: 'Now is null' } }, method: {initWebSocket: function() { // 判断浏览器是否支持WebSocket if (window.WebSocket) { // this.GLOBAL.webSocketPath 这是一个全局变量,填的就是你的websocket的服务端通信地址 // 例子:this.GLOBAL.webSocketPath = ws://localhost:8080/socket this.socket = new WebSocket(this.GLOBAL.webSocketPath); // 监听消息,并将结果映射到对应标签 this.socket.onmessage = function (ev) { // 这里就自己注意转一下哈 console.log("==== onmessage ====") let objTemp = JSON.parse(ev.data); this.tempContent = objTemp.name console.log(objTemp) console.log(this.tempContent) } // 其他那些监听事件就先省略了 } else { console.log("当前浏览器不支持WebSocket"); } },},mounted() { this.initWebSocket(); },}</script>

运行后,触发监听事件,并没有赋值上

修改代码后

<template><div><p>{{tempContent}}</p></div></template><script>export default { name: "Test", data() { return { socket: null, // 这里定义一个变量,因为后面有其他方法也要用到这个socket通道通信 tempContent: 'Now is null' } }, method: {initWebSocket: function() { // 判断浏览器是否支持WebSocket if (window.WebSocket) { // this.GLOBAL.webSocketPath 这是一个全局变量,填的就是你的websocket的服务端通信地址 // 例子:this.GLOBAL.webSocketPath = ws://localhost:8080/socket this.socket = new WebSocket(this.GLOBAL.webSocketPath); // 监听消息,并将结果映射到对应标签 this.socket.onmessage = (ev) => { console.log("==== onmessage ====") let objTemp = JSON.parse(ev.data); this.tempContent = objTemp.name console.log(objTemp) console.log(this.tempContent) } // 其他那些监听事件就先省略了 } else { console.log("当前浏览器不支持WebSocket"); } },},mounted() { this.initWebSocket(); },}</script>

原来没有触发时的情况

触发之后

本文链接地址:https://www.jiuchutong.com/zhishi/288091.html 转载请保留说明!

上一篇:分享24个网页游戏源代码,总有一个是你想要的(十大网页游戏)

下一篇:埃托沙国家公园内一处水坑附近的跳羚,纳米比亚 (© Charlie Summers/Minden Pictures)(埃托沙国家公园发展观兽旅游的优势条件)

  • 一般纳税人是否可以开普票
  • 土地增值税清算管理规程
  • 旅客运输服务解释
  • 工商年报资产状况可以都填0吗
  • 公司购买员工意外保险费会计分录未收到发票
  • 企业购买银行理财的条件
  • 或有资产的确认条件ACCA
  • 外贸公司报关员是干什么的
  • 农村电网维护费会计分录
  • 关于年底双薪和分红问题的处理
  • 回迁房项目的会计和税务处理
  • 运费客户承担钱销售员垫付冲应收怎么处理?
  • 收到社保补差款怎么办
  • 不达起征点收到销售额如何作分录?
  • 公司进行债务重构的原因可能包括
  • 滞留票的原因是什么?
  • 房地产预缴增值税是含税还是不含税
  • 水资源税的纳税义务人
  • 未开票收入可以填写负数吗
  • 公允价值变动损益属于损益类的
  • 什么科目呀
  • 留用员工培训费怎么入账
  • 企业无形资产包括
  • 零售行业折扣如何做账?
  • 苹果手机14pro max
  • win11和win10比较
  • 月末计提电费
  • 运输公司转包业务怎么开票
  • mac怎么卸载软件core sync
  • runservice.exe - runservice是什么进程 有什么用
  • win10 21h1正式版怎么样
  • 施工机械保险费属于什么费用
  • 采用权益法核算
  • 向政府购买土地使用权
  • pascl32.exe - pascl32是什么进程 有什么用
  • 固定资产清理的审计目标不包括
  • 增值税申报时,里面没有数据怎么办
  • 实收资本挂在其他应收款怎么冲销
  • PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
  • man-s命令
  • Google C++ Style中允许使用的Boost库(1) 程序即人生 博客频道 CSDN.NET
  • 企业所得税申报更正怎么操作
  • 业务招待费能计入成本吗
  • 员工买机票公司会知道吗
  • 购买农产品取得增值税普通发票可以抵扣吗
  • 社保和公积金在不同单位交可以吗
  • 季度销售额未超过30万元 季度中间
  • 公司出售房子怎么交税
  • 发放年终奖的会议纪要
  • 对公户取备用金给员工
  • 法定盈余公积的作用
  • 个人住的房子要交房产税吗
  • 软件研发费用怎么做账
  • 间接人工费用计入什么科目
  • 购进材料款项未付用什么凭证
  • 诉讼费可以退回私账嘛
  • 财务预付账款情况说明
  • 物业管理单位收取的物业费征不征收增值税
  • 小规模购买税控盘分录怎么写
  • 网店会计怎么做账
  • 微信转账报销怎么退回
  • 小规模纳税人发票可以抵扣吗
  • 损益平准金结转
  • 个人向公司账户存现金
  • mysql隔离级别详解
  • vista win10
  • 如何解决工作
  • 为什么win8系统的键盘输入不了字
  • linux 安装指令
  • linux如何打包tar.gz
  • win10系统无法开机
  • Python中MySQLdb和torndb模块对MySQL的断连问题处理
  • 使用jsonp跨域,服务端如何改
  • unity 开发游戏
  • javascript教程推荐知乎
  • jQuery使用contains过滤器实现精确匹配方法详解
  • python res.
  • jquery里的each()是什么函数?你是如何使用他的?
  • 纳税人被列入非正常户超过三个月的情况
  • 南京市税务局举报中心电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设