我々はCONNECT
フレーム渡していることをWebSocketを接続経由で春持っている:ハンドラが認め春STOMP WebSocketを介してスケジューリングしていないハートビート
CONNECT\naccept-version:1.2\nheart-beat:10000,10000\n\n\u0000
は、新しいセッションを開始し、リターンより:
CONNECTED
version:1.2
heart-beat:0,0
しかし、私たちは心拍動が欲しいので、WebSocketを開いたままにしておきます。 SockJSを使用しているではなく、です。
私は春のメッセージハンドラを通じて段階:それはheart-beat
(ネイティブヘッダ)を取得
StompHeaderAccessor [headers={simpMessageType=CONNECT, stompCommand=CONNECT, nativeHeaders={accept-version=[1.2], heart-beat=[5000,0]}, simpSessionAttributes={}, simpHeartbeat=[[email protected], simpSessionId=46e855c9}]
後ブローカーが認証した後、それは、注目すべきsimpHeartbeat=[[email protected], simpSessionId=46e855c9}]
メモリアドレスのように見えるものに設定します。
Processing CONNECT session=46e855c9
(ここではsessionIdはsimpSessionIdとは異なります)
デバッグの前にTRACE
を実行していたときに、「スケジューリングハートビート...」などの効果が得られましたが、今は表示されません。
何が起こっているのでしょうか?ハートビートを送信するために使用されSockJSタスクスケジューラ のスレッドプールから
SockJSタスクスケジューラの統計:
おかげ
私はdocumentationで説明を発見しました。 STOMPレベルでハートビート がネゴシエートされると、SockJSハートビートは無効になります。
SockJSのハートビートはSTOMPのハートビートと異なりますか?
あなたの「推測はあなたが内蔵されたシンプルなブローカーを使用していることである」にもかかわらず、 '' .enableStompBrokerRelay(...)を書くために、@Rossenを意図していましたか? '.enableSimpleBroker(...)'のように見えますか? –