WebSoketの簡単な使用

クライアント構成の最初のステップ

<SCRIPT>
     のvar のWebSocket;
     IF( 'のWebSocket' ウィンドウ){ 
        のWebSocket = 新新のWebSocket( 'WS://127.0.0.1:8080 /のWebSocket'); // 設定サーバアドレス用WebSocket 
    } { 
        警告(「あなたの"ブラウザは他のブラウザを試す置き換える、のWebSocketをサポートしていません;)
    } 

    websocket.onopen = 機能(イベント){ 
        はconsole.log( " "接続を確立する); 
    }; 
    websocket.onclose = 機能(イベント){ 
        コンソール。 (ログ "クローズ接続を" );  
    };
    のWebSocket。onMessage = 関数(イベント){ 
        にconsole.log( "メッセージを受信し、" + event.data);
         // プロンプトを再生ポップミュージックとプロンプト
        するvar MSG = event.data;
         IF(MSG ===「スパイクましたエンド" ){ 
            $( '#seckill-ボックス')HTML("スパイク端" ); 
        } 
    }; 
    websocket.onerror = 関数(イベント){ 
        にconsole.log( "のWebSocket異常" ); 
    }; 
    / * * 
     *次のようにreadyStateの状態がある:
     *接続:0の値は、それが接続することを示し、
     OPEN:1値は、成功した接続を示し、通信ができます。 
     CLOSING:値図2は、閉じた状態の接続を示す図である。
     CLOSED:3の値は、接続が閉じられたことを示している、または接続が失敗開きます。
     * / 

    // (開放時の状態に送信されなければならない)サーバーにメッセージを送信する
    IF(websocket.readyState === 1 ){ 
        websocket.send( "サーバハロー" ); 
    }

 </ SCRIPT>

サーバ構成の第2のステップ

@Configuration
 パブリック クラスWebSocketConfig { 

    @Bean 
    公共ServerEndpointExporter serverEndpointExporter(){
         戻り 新しい)(ServerEndpointExporterします。
    } 

}
@ServerEndpoint( "/のWebSocket" 
@Component 
@ SLF4J 
パブリック クラスWebSocketService { 

    / ** 
     *接続用WebSocketの現在の数を記録(スレッドセーフ)
     * / 
    プライベート 静的 LongAdder connectAccount = 新新LongAdder(); 

    / ** 
     *各ストレージ(スレッドセーフ必須)クライアント・オブジェクトに対応するwebsocketServer 
     * / 
    プライベート 静的 CopyOnWriteArraySet <WebSocketService> = webSocketSet 新しい新しい CopyOnWriteArraySet <> ();
     / ** 
     *クライアント接続オブジェクトを持つ
     * / 
    プライベートセッションのセッション; 

    / ** 
     *接続に成功メソッドが呼び出されます
     * @param セッションを
     * / 
    @OnOpen 
    公共 ボイド開く時(セッションセッション){
         この .session = セッション; 
        webSocketSet.add(この); 
        connectAccount.increment(); 
        log.info(「新しいアクセス接続、現在の接続数{}」、connectAccount); 
    } 

    / ** 
     *呼接続が閉じられたとき
     * / 
    @OnClose 
    公共 ボイドOnCloseの(){ 
        webSocketSet.remove(この); 
        connectAccount.decrement(); 
        log.info(「クローズ接続、現在の接続数{ } " 、connectAccount); 
    } 

    / ** 
     *クライアントメッセージを受信したときに呼び出されます
     * @パラメータメッセージ
      * / 
    @OnMessage 
    公共 ボイドのonMessage(文字メッセージ){ 
        log.info( "クライアントは、送信されたメッセージを受信し、メッセージ- > {}" メッセージ); 
    } 

    / ** 
     *サーバクライアントへメッセージを送信する
     * @paramのメッセージ
      * / 
    公共 ボイドのsendMessage(文字列メッセージ){
         ため(webSocketService webSocketService:webSocketSet){
             試み{ 
                log.info( "[]のWebSocketメッセージブロードキャストメッセージ、メッセージ= {}" メッセージ); 
                webSocketService.session 。.getBasicRemote()sendText(メッセージ) 。
            } キャッチ(例外:IOException e)の{ 
                log.info(「失敗メッセージが} {、クライアントに送信されます」、e.getMessage())。
            } 
        } 
    } 

}

そして、あなたはプッシュメッセージを必要とするWebSocketServiceサービスを呼び出すことができます。

おすすめ

転載: www.cnblogs.com/panbingqi/p/11357069.html