2017-12-26 17 views
0

Ich habe einen Web-Socket-Dienst, den ich brauche, um mehrere Anfragen zu holen. Ich initiiere den Web-Socket mit einer URL und muss ca. 200 JSON-Anfragen senden. Also meine Frage ist,Wie HTML5 WEB-Socket mit mehreren senden (Anfragen) zu implementieren

Was ist der beste Weg, es zu tun?

Muss ich für jede Anfrage einen Web-Socket separat öffnen? Code:

var ws = new WebSocket("wss://api.example.com/api/"); 

ws.onopen = function() { 
    ws.send(
     JSON.stringify({ 
      "method": "getItem", 
      "params": { 
       "color": "WHITE" 
      } 
     }) 
    ); 
}; 

ws.onmessage = function(evt) { 
    var received_msg = evt.data; 
    console.log(received_msg); 
}; 

Also in diesem Beispiel, das ich mehr 200-mal das JSON Anfrage benötigen:

JSON.stringify({ 
    "method": "getItem", 
    "params": { 
     "color": "WHITE" 
    } 
}) 

Antwort

1

halte ich würde eine Nachrichten-Warteschlange hinzugefügt (dies könnte ein einfaches Array sein) und das Senden der Nachrichten in die Warteschlange, wann immer Sie können.

d.h .:

ws.queue = [] 

ws.onmessage = function(evt) { 
    var received_msg = evt.data; 
    console.log(received_msg); 
    while(evt.target.queue.length) { 
     evt.target.send(evt.target.queue.pop()); 
    } 
}; 

ws.onopen = function(evt) { 
    while(evt.target.queue.length) { 
     evt.target.send(evt.target.queue.pop()); 
    } 
} 
ws.queue.push(JSON.stringify({ 
    "method": "getItem", 
    "params": { 
     "color": "WHITE" 
    } 
})); 

Dies ist schnell und schmutzig Beispiel, aber ich bin sicher, dass ein ähnlicher Ansatz funktionieren könnte.