diff --git a/src/app/models/rochet-chat-cliente-service.ts b/src/app/models/rochet-chat-cliente-service.ts index 147ee54cb..697ab312f 100644 --- a/src/app/models/rochet-chat-cliente-service.ts +++ b/src/app/models/rochet-chat-cliente-service.ts @@ -11,4 +11,10 @@ export interface msgQueue { message: object, requestId: string, loginRequired: boolean +} + +export interface send { + message: object + requestId?: string + loginRequired: boolean } \ No newline at end of file diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 8e387912d..6d534afad 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { v4 as uuidv4 } from 'uuid' -import { wsCallbacksParams, msgQueue } from 'src/app/models/rochet-chat-cliente-service' +import { wsCallbacksParams, msgQueue, send } from 'src/app/models/rochet-chat-cliente-service' import { deepFind } from 'src/plugin/deep' import { environment } from 'src/environments/environment'; import { SessionStore } from 'src/app/store/session.service'; @@ -15,24 +15,24 @@ export class WsChatService { constructor() {} connect() { - + this.ws.connect(); - const connectMessage = { + const message = { msg: "connect", version: "1", support: ["1"] } - this.ws.send(connectMessage, 'connectMessage', false) - this.ws.send({msg:"pong"}, 'pong', false) + this.ws.send({message, loginRequired: false}) + this.ws.send({message:{msg:"pong"}, loginRequired: false}) this.ws.registerCallback({ type:'Onmessage', key: this.constructor.name+'ping/pong', funx:(message: any) => { if(message.msg == "ping") { - this.ws.send({msg:"pong"},'reconnect', false) + this.ws.send({message:{msg:"pong"}, loginRequired: false}) } } }) @@ -42,7 +42,7 @@ export class WsChatService { login() { const requestId = uuidv4() - const loginRequest = { + const message = { msg: "method", method: "login", id: requestId, @@ -53,7 +53,8 @@ export class WsChatService { } ] } - this.ws.send(loginRequest, requestId, false) + this.ws.send({message, requestId, loginRequired: false}) + return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ @@ -83,14 +84,14 @@ export class WsChatService { const requestId = uuidv4() - const request = { + const message = { "msg": "method", "method": "rooms/get", "id": requestId, "params": [ { "$date": 1480377601 } ] } - this.ws.send(request, requestId, true) + this.ws.send({message, requestId, loginRequired: true}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -104,22 +105,22 @@ export class WsChatService { logout() {} - send(roomId, message) { + send(roomId, msg) { const requestId = uuidv4() - var request = { + var message = { msg: "method", method: "sendMessage", id: requestId, params: [{ _id: uuidv4(), rid: roomId, - msg: message + msg: msg }] } - this.ws.send(request, requestId, true); + this.ws.send({message, requestId, loginRequired: true}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{ @@ -141,7 +142,7 @@ export class WsChatService { const requestId = uuidv4() - const request = { + const message = { msg: "method", method: "loadHistory", id: requestId, @@ -155,7 +156,7 @@ export class WsChatService { ] } - this.ws.send(request, requestId, true) + this.ws.send({message, requestId, loginRequired: true}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -172,7 +173,7 @@ export class WsChatService { const requestId = uuidv4() - var subscribeRequest = { + var message = { "msg": "sub", "id": requestId, "name": "stream-notify-room", @@ -182,7 +183,7 @@ export class WsChatService { ] } - this.ws.send(subscribeRequest, requestId, true); + this.ws.send({message, requestId, loginRequired: true}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -221,7 +222,7 @@ export class WsChatService { const requestId = uuidv4() - const request = { + const message = { "msg": "sub", "id": requestId, "name": "stream-room-messages", @@ -231,7 +232,7 @@ export class WsChatService { ] } - this.ws.send(request, requestId, true); + this.ws.send({message, requestId, loginRequired: true}); return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -247,7 +248,7 @@ export class WsChatService { const requestId = uuidv4() - let streamNotifyObj = { + let message = { "msg": "method", "method": "stream-notify-room", "id": requestId, @@ -258,7 +259,7 @@ export class WsChatService { ] }; - this.ws.send(streamNotifyObj, requestId, true) + this.ws.send({message, requestId, loginRequired: true}) return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', funx:(message)=>{ @@ -310,16 +311,16 @@ export class WsChatService { if(item.loginRequired == true && this.isLogin == true) { // console.log('run msgQueue ',index) - this.ws.send(item.message, item.requestId, item.loginRequired); + this.ws.send(item); delete this.wsMsgQueue[key] } else if(item.loginRequired == false) { // console.log('run msgQueue ',index) - this.ws.send(item.message, item.requestId, item.loginRequired); + this.ws.send(item); delete this.wsMsgQueue[key] } } }, - send: (message: object, requestId = uuidv4(), loginRequired) => { + send: ({message, requestId = uuidv4(), loginRequired = false}:send) => { if (this.ws.connected == false || loginRequired == true && this.isLogin == false) { // save data to send when back online // console.log('save msgQueue this.ws.connected == false || loginRequired == true && this.isLogin == false',this.ws.connected, loginRequired, this.isLogin)