2017-12-26 70 views
0

여러 요청을 가져 오는 데 필요한 웹 소켓 서비스가 있습니다. URL을 사용하여 웹 소켓을 초기화하고 약 200 회의 json 요청을 보내야합니다. 내 질문은다중 전송 (요청)을 사용하여 HTML5 WEB-Socket을 구현하는 방법

가장 좋은 방법은 무엇입니까?

각 요청마다 웹 소켓을 별도로 열어야합니까? 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); 
}; 

그래서이 예제에서 좀 더 200 배이 JSON 요청해야합니다

:

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

답변

1

내가 메시지 큐를 추가하는 것을 고려 것이다 (이 간단한 배열 될 수있다)과의 메시지를 보내기 당신이 할 수있을 때마다 대기열.

즉 :

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" 
    } 
})); 

이 신속하고 더러운 예입니다,하지만 난 유사한 접근 방식이 일할 수있는 확신합니다.