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

uniapp 使用 websocket

原理和vue使用是一样的,这里就不多说了,可以去看我之前发的 websocket 的使用

传送门:WebScoket 使用教程

直接看代码:

(1)先创建一个ws的连接。

在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。

data() {
    return {
        socketTask: '',
        ...
    }
},
methods: {
    connectSocketInit(mid){
        // 创建一个this.socketTask对象【发送、接收、关闭socket都由这个对象操作】
        this.socketTask = uni.connectSocket({
            url: `wss://ws的地址`,
		    success(data) {
		        console.log("websocket连接成功lolo ");
		    },
        });
    }
(2)发送初始订阅消息
  • 当WebSocket连接打开时 (onOpen 事件),将发送一条JSON格式的消息给服务器。
  • 消息内容包括客户端信息、意图、客户端ID、组织ID和频道ID列表。
connectSocketInit(mid) {
    ...
    var prmsg = `更具自己项目需要绑定发送的数据`;
    this.socketTask.onOpen((res) => { //发送消息
        this.socketTask.send({
            data: prmsg,
		});
    })
}
(3)接收并处理消息
  • 使用 onMessage 监听器来接收从服务器发来的消息。
connectSocketInit(mid) {
    this.socketTask.onOpen((res) => { //发送消息
        ...
        this.socketTask.onMessage((res) => {
		    let evtObj = JSON.parse(res.data);
			console.log('ws推送', evtObj)
        })
    }}
        
}
(4)关闭连接处理
  • 使用 onClose 监听器来处理连接关闭的情况,当连接关闭时会在控制台输出 "ws已经被关闭"。
connectSocketInit(mid) {
    ...
    // socket关闭执行
	this.socketTask.onClose(() => {
		console.log("ws已经被关闭")
	})
},
closeSocket() { //关闭链接
    this.socketTask.close({
		success(res) {
			console.log("关闭成功", res)
		},
		fail(err) {
			console.log("关闭失败", err)
		}
	})
},

注意:

  • 确保在适当的地方调用 closeSocket() 来释放资源。
  • 处理好错误和异常情况,保证用户体验。
  • 安全性考虑:确保所有传输的数据都是加密的,并且只向授权的用户展示敏感信息

这样 uniapp 中 webSocket 就能使用了,其他可参照官网进行开发


http://www.kler.cn/a/376400.html

相关文章:

  • golang的多表联合orm
  • 性能测试需求分析详解
  • 如何实现指针值的原子操作
  • 什么品牌的护眼台灯比较好?五款护眼效果比较明显的护眼台灯
  • TVM前端研究--Pass
  • 淘宝详情API接口全解析:获取与高效运用
  • 从方言对话这枚“落子”,看AI手机“棋局”的尴尬赛点
  • Ansible 部署应用
  • 数据结构(Java)—— 认识泛型
  • 河南省教育厅办公室关于举办2024年河南省高等职业教育技能大赛的通知
  • Java Collection/Executor DelayedWorkQueue 总结
  • MMSegmentation测试阶段推理速度非常慢的一种可能原因
  • 【前端基础】HTML 基础
  • 一文带你弄懂thermal governor IPA
  • 为什么大家都在学数字孪生呢?
  • Keras 3 示例:开启深度学习之旅
  • 【前端基础】CSS基础
  • Unity性能优化(简略版)
  • 刘艳兵-DBA023-控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息:
  • 微信小程序 - 数组 push / unshift 追加后数组返回内容为数字(数组添加后打印结果为 Number 数值类型)
  • 现代卷积神经网络(GoogLeNet+批量归一化+ResNet)
  • https和http的区别,及HTTPS的工作流程
  • windows临时安装solr
  • 2024 Rust现代实用教程 Error错误处理
  • 【tomcat系列漏洞利用】
  • 原生html+js+css+php多图上传带预览可增删判断图片大小和后缀