WebSocket が ServiceNow インスタンスでどの様に動くか。Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } WebSocket プロトコルが ServiceNow インスタンスでどのように機能するかを学びます。これには、ServiceNow が Asynchronous Message Bus (AMB) 通信のために WebSocket をどのように使用するか、WebSocket 接続エラーのトラブルシューティング方法、および WebSocket プロトコルを無効にする方法が含まれます。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Madrid 以降 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #00718f; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } WebSocket とは何ですか? WebSocket は、単一の TCP 接続上で全二重通信チャネルを提供するプロトコルです。半二重通信を提供する HTTP とは異なり、WebSocket は双方向の情報交換をサポートします。これは、標準的な HTTP ではサポートされていない、サーバーがクライアントに情報をプッシュできることを意味します。 ServiceNow が WebSocket を使用する方法 ServiceNow インスタンスでは、WebSocket プロトコルは Asynchronous Message Bus (AMB) によって使用されます。WebSocket は long-polling よりも効率的であるため、AMB のパフォーマンスを向上させます。ファイアウォール、プロキシ、またはその他のネットワーク制限により WebSocket 接続を確立できない場合、システムは long-polling にフォールバックし、正常に機能し続けます。 WebSocket と long-polling により、AMB は以下の機能をサポートします。 ChatVirtual task boardAgent WorkspacePresence indicators クライアントは、サブスクライブしているチャネルでメッセージを送信できます。サーバーはメッセージを受信し、そのチャネルをサブスクライブしている他のクライアントに公開します。 WebSocket 接続エラー クライアントが WebSocket 経由で通信しようとすると、最初にサーバーがプロトコルをサポートしていると想定します。クライアントがサーバーから確認応答を受信しない場合、ブラウザコンソールログに次のエラーが表示されます。 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 が利用できない場合、クライアントは自動的に long-polling (HTTP) にフォールバックします。 WebSocket プロトコルの無効化 WebSocket プロトコルは、ServiceNow インスタンスでデフォルトで有効になっています。無効にするには、glide.cometd.websocket.enabled システムプロパティを false に設定します。プロパティが存在しない場合は作成してください。 注意: WebSocket を無効にすると、システムはすべての AMB 通信に long-polling を使用するようになり、効率が低下します。ネットワーク構成で必要な場合にのみ WebSocket を無効にしてください。 WebSocket 接続をテスト クライアント側から WebSocket 接続をテストするには、次の診断ページにアクセスします。 https://<instance_name>.service-now.com/$websocket_test <instance_name> をインスタンス名に置き換えてください。