From 28a570cfbf4a65ffa2ddb66ecc77712b7bb9ab21 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Mon, 10 Jan 2022 11:11:27 +0100 Subject: [PATCH] add get room --- src/app/home/home.page.ts | 4 +++ .../socket/rocket-chat-client.service.ts | 27 ++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 2c514aa4c..30e63ddf4 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -105,7 +105,11 @@ export class HomePage implements OnInit { email: 'paulo.pinto@gabinetedigital.local', password: 'tabteste@006' }).then((message)=>{ + // alert('login') console.log('rocket chat login successfully', message) + this.RocketChatClientService.getRooms().then((rooms)=>{ + console.log('rooms', rooms) + }) }).catch((message)=>{ console.log('rocket chat login failed', message) }).finally(()=>{ diff --git a/src/app/services/socket/rocket-chat-client.service.ts b/src/app/services/socket/rocket-chat-client.service.ts index 868c9d413..92dc7f48a 100644 --- a/src/app/services/socket/rocket-chat-client.service.ts +++ b/src/app/services/socket/rocket-chat-client.service.ts @@ -61,7 +61,8 @@ class _RocketChatClientService { return new Promise((resolve, reject) => { this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{ - if(message.result.id == requestId) { // same request send + // console.log(message.result.id, requestId) + if(message.id == requestId) { // same request send if(message.result) { if(message.result.token) { this.isLogin = true @@ -116,13 +117,22 @@ class _RocketChatClientService { "params": [ { "$date": 1480377601 } ] } this.ws.send(request, requestId) + + return new Promise((resolve, reject) => { + this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{ + if(message.result.id == requestId) { // same request send + resolve(message) + } + }}) + }); } subscribe() { + const requestId = uuidv4() var subscribeRequest = { "msg": "sub", - "id": "unique-id", + "id": requestId, "name": "stream-notify-room", "params":[ "room-id/event", @@ -130,7 +140,16 @@ class _RocketChatClientService { ] } - //this.ws.send(subscribeRequest); + this.ws.send(subscribeRequest); + + return new Promise((resolve, reject) => { + this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{ + if(message.result.id == requestId) { // same request send + resolve(message) + } + }}) + }); + } private disconnect = () => { @@ -185,7 +204,7 @@ class _RocketChatClientService { console.log('save msgQueue') this.wsMsgQueue.push({message, requestId}) } else { - // console.log('send rocket chat', message) + console.log('send rocket chat', message) let messageStr = JSON.stringify(message) this.socket.send(messageStr) }