Fix all websocket bugs

This commit is contained in:
Peter Maquiran
2022-01-10 22:35:44 +01:00
parent d04a57b35c
commit 9c043e9853
2 changed files with 19 additions and 18 deletions
+4 -3
View File
@@ -95,6 +95,10 @@ export class HomePage implements OnInit {
private RouteService: RouteService,
private RocketChatClientService: RocketChatClientService) {
this.RocketChatClientService.loadHistory('fsMwcNdufWvdnChj7ya9nF9cX2HizxxWAM', 10).then((message)=>{
console.log('loadHistory', message)
})
this.RocketChatClientService.getRooms().then((rooms: any)=>{
console.log('rooms', rooms)
@@ -116,9 +120,6 @@ export class HomePage implements OnInit {
}
)
this.RocketChatClientService.loadHistory('fsMwcNdufWvdnChj7ya9nF9cX2HizxxWAM', 50).then((message)=>{
console.log('loadHistory', message)
})
window['jj'] = ()=>{
//send message // roomId // Message
@@ -88,7 +88,9 @@ import { deepFind } from 'src/plugin/deep'
}
getRooms(requestId = uuidv4()) {
getRooms() {
const requestId = uuidv4()
const request = {
"msg": "method",
@@ -129,7 +131,7 @@ import { deepFind } from 'src/plugin/deep'
this.ws.send(request, requestId, true);
return new Promise((resolve, reject) => {
this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{
this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{
if(message.id == requestId || deepFind(message,'result.id') == requestId) { // same request send
resolve(message)
return true
@@ -165,8 +167,9 @@ import { deepFind } from 'src/plugin/deep'
this.ws.send(request, requestId, true)
return new Promise((resolve, reject) => {
this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{
if(message.id == requestId || deepFind(message,'result.id') == requestId) { // same request send
this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{
// console.log(message)
if(message.id == requestId ) { // same request send
resolve(message)
return true
}
@@ -191,7 +194,7 @@ import { deepFind } from 'src/plugin/deep'
this.ws.send(subscribeRequest, requestId, true);
return new Promise((resolve, reject) => {
this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{
this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{
if(message.msg == 'ready' || deepFind(message, 'subs.0') == requestId) { // same request send
resolve(message)
return true
@@ -241,7 +244,7 @@ import { deepFind } from 'src/plugin/deep'
this.ws.send(request, requestId, true);
return new Promise((resolve, reject) => {
this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{
this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{
if(message.msg == 'ready' || deepFind(message, 'subs.0') == requestId) { // same request send
resolve(message)
return true
@@ -268,7 +271,7 @@ import { deepFind } from 'src/plugin/deep'
this.ws.send(streamNotifyObj, requestId, true)
return new Promise((resolve, reject) => {
this.ws.registerCallback({type:'Onmessage', requestId, runOnces: true, funx:(message)=>{
this.ws.registerCallback({type:'Onmessage', requestId, funx:(message)=>{
if(message.id == requestId || deepFind(message,'result.id') == requestId) { // same request send
resolve('')
return true
@@ -298,10 +301,6 @@ import { deepFind } from 'src/plugin/deep'
}
},
deleteCallback(requestId: string){
console.log('delete', this.wsCallbacks[requestId])
delete this.wsCallbacks[requestId]
},
connect:(url)=> {
this.ws.connected = false
this.wsUrl = url
@@ -319,12 +318,14 @@ import { deepFind } from 'src/plugin/deep'
},
wsMsgQueue:()=> {
this.wsMsgQueue.forEach((item, index, object) => {
if(item.loginRequired && this.isLogin) {
if(item.loginRequired == true && this.isLogin == true) {
console.log('run msgQueue ',index)
this.ws.send(item.message, item.requestId, item.loginRequired);
object.splice(index, 1);
delete this.wsMsgQueue[item.requestId]
} else if(item.loginRequired == false) {
console.log('run msgQueue ',index)
this.ws.send(item.message, item.requestId, item.loginRequired);
object.splice(index, 1);
delete this.wsMsgQueue[item.requestId]
}
})
@@ -335,7 +336,6 @@ import { deepFind } from 'src/plugin/deep'
console.log('save msgQueue')
this.wsMsgQueue.push({message, requestId, loginRequired})
} else {
// console.log('send to rocket chat', message)
let messageStr = JSON.stringify(message)
this.socket.send(messageStr)
}