クライアント構成の最初のステップ
<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サービスを呼び出すことができます。