移动端聊天实现
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -2,6 +2,9 @@ import http from '@/common/request'
|
||||
import browser from '@/common/browser'
|
||||
import store from '../store'
|
||||
import pinyin from '@/common/pinyin.js';
|
||||
|
||||
import * as dayjs from 'dayjs'
|
||||
|
||||
export default {
|
||||
// 获取字典
|
||||
getdict(dict) {
|
||||
@@ -464,6 +467,12 @@ export default {
|
||||
store.dispatch('getChatList');
|
||||
var chatWindowData = store.state.chatDatalist[userId].list
|
||||
var chatListInfo = store.state.chatlist[userId]
|
||||
|
||||
var data2 = this.getKeyObjectStorage(store.state.userInfo.userId + '_' +
|
||||
'chatlistData')
|
||||
// var _num=data2[userId].num||
|
||||
console.log("===========data2:",JSON.stringify(data2[userId]))
|
||||
|
||||
// 找到数组中对象属性值一样的对象并返回
|
||||
function arrfindobject({
|
||||
arr,
|
||||
@@ -508,11 +517,11 @@ export default {
|
||||
nickName: fromInfo.nickName,
|
||||
portrait: fromInfo.portrait,
|
||||
content: msgTypeLabel,
|
||||
time: time,
|
||||
time: dayjs(time).format("YYYY/MM/DD HH:mm:ss"),
|
||||
num: disturb == 'Y' ? 'dot' : (chatListInfo.num ? chatListInfo.num + 1 : 1),
|
||||
windowType: windowType,
|
||||
disturb: disturb, //是否静默消息
|
||||
top: top, //是否置顶
|
||||
disturb: "N", //是否静默消息
|
||||
top: "N", //是否置顶
|
||||
userType: fromInfo.userType
|
||||
}
|
||||
}
|
||||
@@ -526,7 +535,7 @@ export default {
|
||||
time: time,
|
||||
num: disturb == 'Y' ? 'dot' : (chatListInfo.num ? chatListInfo.num + 1 : 1),
|
||||
windowType: windowType,
|
||||
disturb: disturb, //是否静默消息
|
||||
disturb: "N", //是否静默消息
|
||||
top: top, //是否置顶
|
||||
userType: 'GROUP'
|
||||
}
|
||||
@@ -990,6 +999,31 @@ export default {
|
||||
});
|
||||
// #endif
|
||||
},
|
||||
formatMessage(msg){
|
||||
msg.pushType="MSG"
|
||||
const _data=JSON.parse(msg.messageBody)
|
||||
msg.msgContent={
|
||||
msgType:"TEXT",
|
||||
content:_data.content,
|
||||
disturb:false,
|
||||
top:false,
|
||||
}
|
||||
|
||||
msg.windowType="SINGLE"
|
||||
msg.createTime=msg.messageTime;
|
||||
msg.userId=msg.fromId;
|
||||
msg.fromInfo={
|
||||
userId:msg.fromId,
|
||||
userType:1,
|
||||
nickName:msg.fromId,
|
||||
portrait:"https://shudong2022.oss-cn-hangzhou.aliyuncs.com/common/user/logo.png"
|
||||
};
|
||||
msg.groupInfo={};
|
||||
msg.msgId=msg.messageKey;
|
||||
|
||||
return msg
|
||||
|
||||
},
|
||||
debounce(func, wait = 1000, immediate = true) {
|
||||
/**
|
||||
* @desc 函数防抖
|
||||
|
||||
@@ -4,9 +4,10 @@ let retimer = null
|
||||
import store from '../store'
|
||||
|
||||
import * as sdk from "@/common/imSdk/lim-sdk.js";
|
||||
|
||||
import lim from "@/common/imSdk/sdk-bridge.js";
|
||||
|
||||
import publicFc from '@/common/publicFc';
|
||||
|
||||
export default {
|
||||
socketTask: null,
|
||||
// 连接WebSocket
|
||||
@@ -28,42 +29,40 @@ export default {
|
||||
onSocketReConnectSuccessEvent: () => {
|
||||
console.log("重连成功");
|
||||
},
|
||||
onOfflineMessage:(e)=>{
|
||||
onOfflineMessage: (e) => {
|
||||
console.log("====================拉取到离线消息")
|
||||
console.log(e)
|
||||
setTimeout(function() {
|
||||
if (e.length > 0) {
|
||||
e.map((msg) => {
|
||||
console.log(msg)
|
||||
setTimeout(()=>{
|
||||
const _data = publicFc.formatMessage(msg)
|
||||
uni.$emit('onP2PMessage', _data);
|
||||
store.dispatch('onP2PMessage', _data)
|
||||
},500)
|
||||
})
|
||||
}
|
||||
}, 2000);
|
||||
|
||||
},
|
||||
onTestMessage: (e) => {
|
||||
console.log("onTestMessage :" + e);
|
||||
store.dispatch('onP2PMessage',e)
|
||||
console.log("onTestMessage :");
|
||||
store.dispatch('onP2PMessage', e)
|
||||
},
|
||||
onP2PMessage: (e) => {
|
||||
console.log("onP2PMessage :" + e);
|
||||
console.log("onP2PMessag e :::");
|
||||
console.log(JSON.parse(e))
|
||||
e = JSON.parse(e)
|
||||
e.data.pushType="MSG"
|
||||
const _data=JSON.parse(e.data.messageBody)
|
||||
e.data.msgContent={
|
||||
msgType:"TEXT",
|
||||
content:_data.content,
|
||||
disturb:false,
|
||||
top:false,
|
||||
}
|
||||
|
||||
e.data.windowType="SINGLE"
|
||||
e.data.createTime=e.data.messageTime;
|
||||
e.data.userId=e.data.fromId;
|
||||
e.data.fromInfo={
|
||||
userId:e.data.fromId
|
||||
};
|
||||
e.data.groupInfo={};
|
||||
e.data.msgId=e.data.messageId;
|
||||
|
||||
uni.$emit('onP2PMessage', e.data);
|
||||
store.dispatch('onP2PMessage',e.data)
|
||||
|
||||
const _data = publicFc.formatMessage(e.data)
|
||||
|
||||
uni.$emit('onP2PMessage', _data);
|
||||
store.dispatch('onP2PMessage', _data)
|
||||
|
||||
},
|
||||
onLogin: (uid) => {
|
||||
console.log("用户" + uid + "登陆sdk成功");
|
||||
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
@@ -79,7 +78,7 @@ export default {
|
||||
|
||||
console.log(lim)
|
||||
|
||||
// 防止多次建立ws链接,貌似还没有生效,需要检查
|
||||
// 防止多次建立ws链接,貌似还没有生效,需要检查
|
||||
if (this.socketTask != null) {
|
||||
return false
|
||||
}
|
||||
@@ -92,12 +91,12 @@ export default {
|
||||
console.log(this.socketTask)
|
||||
|
||||
console.log('sdk 成功连接的回调, 可以使用 sdk 请求数据了.');
|
||||
sdk.getAllFriend().then(res => {
|
||||
console.warn(res)
|
||||
})
|
||||
sdk.getUserSequence().then(res => {
|
||||
console.warn(res)
|
||||
})
|
||||
// sdk.getAllFriend().then(res => {
|
||||
// console.warn(res)
|
||||
// })
|
||||
// sdk.getUserSequence().then(res => {
|
||||
// console.warn(res)
|
||||
// })
|
||||
|
||||
sdk.getUserConversationList(0).then(res => {
|
||||
console.warn(res)
|
||||
|
||||
Reference in New Issue
Block a user