diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index f19b6468c..131ba4ca5 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -106,7 +106,7 @@ export class MessageService { this.sendAttempt++; if(!this.hasFile) { - this.WsChatService.send({roomId:this.rid, msg:this.msg, requestId: this.localReference}).then(({message, requestId}) => { + this.WsChatService.send({roomId:this.rid, msg:this.msg, localReference: this.localReference}).then(({message, requestId}) => { let ChatMessage = message.result if (environment.chatOffline) { @@ -137,7 +137,7 @@ export class MessageService { this.temporaryData = {} alert('to send') - this.WsChatService.send({roomId:this.rid, msg: this.msg, attachments: this.attachments, file: this.file, requestId: this.localReference}).then(({message, requestId}) => { + this.WsChatService.send({roomId:this.rid, msg: this.msg, attachments: this.attachments, file: this.file, localReference: this.localReference}).then(({message, requestId}) => { alert('receive11') console.log('message', message) let ChatMessage = message.result diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 96e2fdf7c..91db0c881 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -96,10 +96,10 @@ export class RoomService { console.log('recivemessage', _ChatMessage) alert('receive and send to view') - setTimeout(()=>{ - let ChatMessage = _ChatMessage.fields.args[0] - ChatMessage = this.fix_updatedAt(ChatMessage) - + let ChatMessage = _ChatMessage.fields.args[0] + ChatMessage = this.fix_updatedAt(ChatMessage) + + if(!this.messagesLocalReference.includes(ChatMessage.localReference)) { const message = this.prepareMessage(ChatMessage) this.lastMessage = message this.calDateDuration(ChatMessage._updatedAt) @@ -121,7 +121,8 @@ export class RoomService { setTimeout(()=>{ this.scrollDown() }, 50) - }, 150) + } + } ) @@ -404,9 +405,12 @@ export class RoomService { } else { if(environment.chatOffline) alert('create offline') const offlineMessage = this.prepareMessage(ChatMessage) + + this.messagesLocalReference.push(offlineMessage.localReference) offlineMessage.send().then(()=>{ this.updateMessageDB(ChatMessage, ChatMessage.localReference) }) + } }); @@ -437,7 +441,7 @@ export class RoomService { await chatHistory.result.messages.reverse().forEach( async (message) => { this.prepareMessage(message) - this.messages = this.sortService.sortDate(this.messages, '_updatedAt') + // this.messages = this.sortService.sortDate(this.messages, '_updatedAt') }) @@ -459,7 +463,7 @@ export class RoomService { wewMessage.setData(message) wewMessage.loadHistory = this.hasLoadHistory - if(!message._id && environment.chatOffline) { + if(!message._id && environment.chatOffline && save) { if(this.hasLoadHistory && environment.chatOffline) alert('create offline') this.messages.push(wewMessage) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index ff85037fa..8b3633909 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -158,14 +158,16 @@ export class WsChatService { } // send message to room - send({roomId, msg, attachments = null, file = null, requestId = uuidv4()}) { + send({roomId, msg, attachments = null, file = null, localReference = null}) { + const requestId = uuidv4() var message = { msg: "method", method: "sendMessage", id: requestId, params: [{ rid: roomId, + localReference: localReference, msg: msg, attachments, file diff --git a/src/app/shared/chat/messages/messages.page.html b/src/app/shared/chat/messages/messages.page.html index 65c1e02fb..6435cec6a 100644 --- a/src/app/shared/chat/messages/messages.page.html +++ b/src/app/shared/chat/messages/messages.page.html @@ -4,6 +4,9 @@
{{ wsChatMethodsService.getDmRoom(roomId).name }} + {{ roomId }} + + {{ wsChatMethodsService.getDmRoom(roomId).messages | json }}