基于uniapp的全局监听websocket连接及自动拨打电话号码

本文介绍了如何在uniapp项目中定义一个全局的WebSocket类,包括连接、心跳检测、消息接收以及自动根据接收到的数据拨打电话。同时,展示了如何在main.js和页面内使用这个类并监听断开连接进行重连。
摘要由CSDN通过智能技术生成

基于uniapp的全局监听websocket连接及自动拨打电话号码

定义一个全局的socket类

//定义一个socket类
class WebSocket {
	constructor(url) {
		this.url = url
		this.time=null;
	}
	//建立连接
	connet() {
		let _this = this;
		uni.connectSocket({
			url: _this.url,
			complete: (res) => {
				if (res.errMsg == 'connectSocket:ok') {
					//连接成功
					_this.IsConnect();
				} else {
					//连接失败
					uni.showToast({
						icon: 'none',
						title: '连接失败'
					})
				}
			}
		});
	}
	//判断是否连接
	IsConnect() {
		let that = this;
		uni.onSocketOpen(function(res) {
			if (res) {
				//说明已经连接成功了
				that.SetInterval(2, '心跳检测');
				that.setConnect();
			}
		});

	}
	//与后台信息建立连接
	setConnect() {
		let that = this;
		uni.onSocketMessage(function(res) {
			// let {phone}=res.data; //结构赋值取号码
			let data = res.data;
			if (!data.includes('连接成功')) {
				that.callphone(data)
			}
		});
	}
	//心跳检测
	SetInterval(delay, msg) {
	    clearInterval(this.time) //先清除计时器
		this.time = setInterval(function() {
			console.log('心跳检测')
			uni.sendSocketMessage({
				data: msg
			});
		}, delay*60000)
	}
	//打电话
	callphone(phone) {
		// #ifdef APP-PLUS
		plus.device.dial(phone, false)
		// #endif
	}
	//判断是否断开连接
	onError() {
		let that=this;
		uni.onSocketError(function(res) {
			console.log('连接断开')
			that.connet()
		});
	}
}

export default {
	socket: WebSocket
}

mian.js代码

import socket from '@/utils.js/socket';
let IO = new socket.socket('websocket连接地址');
Vue.prototype.$IO=IO;

页面内调用

		onLoad() {
			this.$IO.connet()
		},

在app.vue中监听是否断开,断开就重连

		onShow: function() {
			this.$IO.onError();
		},
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值