WebSocketとは何ですか?ServiceNow インスタンスではどのように機能しますか?WebSocketを使用する目的は何ですか?Issue WebSocketとは何ですか? ServiceNow インスタンスで WebSocket プロトコルを無効にするにはどうすればよいか? ServiceNow での WebSocket の使用方法Releaseマドリッド以降ResolutionWebSocket はプロトコルであり、単一の TCP 接続で全二重通信チャネルを提供します。一方、HTTP は半二重通信を提供します。WebSocket の情報交換モデルは双方向です。つまり、サーバーはクライアントに情報をプッシュできます (直接 HTTP は許可されません)ServiceNow インスタンスでは、WebSocket プロトコルは AMB でのみ使用され、「ロングポーリング」よりも効率的であるため、パフォーマンスが向上します。WebSocket接続が確立できない場合(ファイアウォール、プロキシなどが原因で)、ロングポーリングにフォールバックし、すべてが正常に機能します。クライアントは WebSocket を介してサーバーと通信するための呼び出しを行いますが、サーバーから受信確認を取得できない場合、クライアントは "予期しない応答コード: 400" を受け取ります。これは、ブラウザコンソールログに表示されるエラーメッセージです。 js_includes_concourse.jsx?v=05-01-2020_1402&lp=Sun_Jun_07_18_36_34_PDT_2020&c=38_1037:3084 WebSocket connection to 'wss://<instance_name>.service-now.com/amb' failed: Error during WebSocket handshake: Unexpected response code: 400(anonymous) @ js_includes_concourse.jsx?v=05-01-2020_1402&lp=Sun_Jun_07_18_36_34_PDT_2020&c=38_1037:3084 なんらかの理由 (中間ファイアウォール、ロードバランサー、VPN、プロキシルールなど) で通信チャネルがブロックされている場合、上記のエラーメッセージは常に確認され、想定されます。クライアントは常に、サーバーが WebSocket をサポートしていると仮定して最初の呼び出しを行い、クライアント側から使用できない場合は、すぐにロングポーリング (HTTP) に切り替えます。ServiceNow インスタンスの WebSocket プロトコルはデフォルトで有効になっています。システムプロパティ「glide.cometd.websocket.enabled」を false に設定 (必要に応じて作成) することでオフにすることができますが、これはお勧めしません。クライアントは、登録しているチャネルでメッセージを送信できます。サーバーはメッセージを受信し、そのチャネルにサブスクライブしているクライアントにメッセージを発行します。WebSocket とロング ポーリングの助けを借りて、AMB はチャット、仮想タスク ボード、エージェント ワークスペース、プレゼンスなどを強化しています。クライアント側から WebSocket 接続をテストするには、このページに移動して簡単な診断を実行します。 https://<instance_name>.service-now.com/$websocket_test