文件查找失败:'@/common/js-sdk/socket/socket.js' at pages/home/home.vue

This commit is contained in:
zhangdaiscott
2021-07-28 17:20:53 +08:00
parent 18c764fa5b
commit d990ce5abb
2 changed files with 121 additions and 6 deletions

View File

@@ -0,0 +1,110 @@
import configService from '@/common/service/config.service.js';
import store from '@/store/index.js';
class socket {
constructor(options) {
this.socketUrl = configService.apiUrl;
this.socketStart = false;
this.monitorSocketError();
this.monitorSocketClose();
this.socketReceive();
}
init(socket_type,callback) {
const _this = this;
if (configService.apiUrl) {
if(this.socketStart){
console.log('webSocket已经启动了');
}else{
let userid=store.state.userid?store.state.userid:store.getters.userid;
let url=this.socketUrl.replace("https://","wss://").replace("http://","ws://")+"/"+socket_type+"/"+userid+"_app";
console.log("启动this.socketUrl连接地址:",url);
uni.connectSocket({
url: url,
method: 'GET'
});
uni.onSocketOpen((res) => {
this.socketStart = true;
callback && callback();
console.log('WebSocket连接已打开');
});
/*setTimeout(() => {
_this.getHeartbeat();
}, 5000);*/
}
}else{
console.log('config/baseUrl socketUrl为空');
}
}
//Socket给服务器发送消息
send(data, callback) {
const _this = this;
if (store.state.userid) {
data.userUid =store.state.userid;
}
console.log(data);
uni.sendSocketMessage({
data: JSON.stringify(data),
success: () => {
callback && callback(true);
},
fail: () => {
callback && callback(false);
}
});
}
//Socket接收服务器发送过来的消息
socketReceive() {
const _this = this;
uni.onSocketMessage(function(res) {
console.log("APP:----》收到服务器内容:",res);
let data = JSON.parse(res.data);
//console.log('收到服务器内容:', data);
_this.acceptMessage && _this.acceptMessage(data);
});
}
//关闭Socket
closeSocket() {
const _this = this;
uni.closeSocket();
_this.socketStart = false;
}
//监听Socket关闭
monitorSocketClose() {
const _this = this;
uni.onSocketClose(function(res) {
console.log('WebSocket 已关闭!');
_this.socketStart = false;
setTimeout(function() {
//_this.init();
}, 3000);
});
}
//监听Socket错误
monitorSocketError() {
const _this = this;
uni.onSocketError(function(res) {
_this.socketStart = false;
console.log('WebSocket连接打开失败请检查');
});
}
//心跳
getHeartbeat() {
const _this = this;
this.send({
type: "心跳",
userUid: store.state.userid
}, (val) => {
setTimeout(() => {
if (val) {
//_this.getHeartbeat();
} else {
if(!_this.socketStart){
//_this.init();
}
}
}, 10000);
});
}
};
const mySocket = new socket();
export default mySocket;

View File

@@ -42,14 +42,19 @@
initDictData() {
//根据字典Code, 初始化字典数组
if (this.searchUrl){
this.$api.get(this.searchUrl,{"code":this.dictCode}).then(res=>{
this.dictOptions=res;
this.getIndex()
this.$http.get(this.searchUrl,{"code":this.dictCode}).then(res=>{
if(res.data.success){
this.dictOptions = res;
this.getIndex()
}
})
}else{
this.$api.getDict(this.dictCode).then(res => {
this.dictOptions = res;
this.getIndex()
let code = this.dictCode;
this.$http.get(`/sys/dict/getDictItems/${code}`).then(res=>{
if(res.data.success){
this.dictOptions = res.data.result;
this.getIndex()
}
})
}
},