1.下载@hyoga/uni-socket.io
npm i @hyoga/uni-socket.io@1.0.1
2.在启动时引入并初始化并监听
import io from '@hyoga/uni-socket.io';
methods:{
init(){
var that = this;
const value = uni.getStorageSync('userInformation');
that.socket = io(baseUrl, {query: {'Authorization': `Bearer ${value.access_token}`}, transports: ['websocket']});
//监听服务器端发送消息事件
that.socket.on('messageEvent', async function(data,callback) {
let message = JSON.parse(data.messageBody)
message.content = JSON.stringify(message.content)
that.$u.vuex('vuex_message',message)//把后端返回的消息存储,并在相应的界面监听vuex_message,达到实时更新效果
var result = {"ret":0,"errorcode":0,"msg":"操作成功",data:""}//此处是为了给后端发回调,证明监听成功
callback(result)
});
},
//断开连接
disconnect(){
this.socket.disconnect();
}
}
3.在App.vue的onShow里面调用
4.在App的onHide里面断开连接,手机进入后台时断开连接
5.如果想通过socket向服务端请求接口,代码如下
updateClientId(value) {
console.log("发送更新clientid请求")
var info = plus.push.getClientInfo();
this.socket = io(baseUrl, {query: {'Authorization': `Bearer ${value.access_token}`}, transports: ['websocket']});
this.socket.on('connect', function(data){ console.log(data + "Connected to Server"); });
this.socket.emit('userUpdateUniClientId',info.clientid, function(data){
//请求userUpdateUniClientId接口成功
console.log("响应ack:"+ JSON.stringify(data));
});
},
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket
uni-app使用websocket