3

非常に人気のある春の websocket デモから次のコードがあります。

   stompClient.connect({}, function(frame) {
    setConnected(true);
    console.log('Connected: ' + frame);
    stompClient.subscribe('/user/queue/greeting', function(greeting) {          
        displayQueueMessage(greeting);
    });

function sendName() {
  var name = document.getElementById('name').value;
  stompClient.send("/app/wsdemo", {}, JSON.stringify({
    'name' : name
   }));
}

接続時に、実際にキューにサブスクライブし、コールバック メソッドを提供します。

ここで、 getAllUsersという Websocket 用のサーバー サービスがあるとします。

フロントエンドにusersOnGeographicMapusersOnDataTableという 2 つの異なるコンポーネントがあるとします。

この 2 つのビュー コンポーネントがサーバー サービス (getAllUsers) を利用するとします。これら 2 つのコンポーネントにはそれぞれコールバック関数があります (1 つはユーザーを地理マップに表示し、もう 1 つはユーザーをデータ テーブルに描画します)。

問題は、キューを一度だけサブスクライブし、コールバック関数を 1 つ提供することです。どうすればこの問題を解決できますか?

もちろん、ajax では、各呼び出しにコールバックが提供されるため、非常に簡単です。

4

0 に答える 0