今回はWebSocketの使い方について詳しく解説していきます。WebSocketを使用する際の注意点を実際の事例を交えて見ていきましょう。
WebSocket について初めて知る
1: WebSocket を理解する
WebSocket は、ブラウザとサーバー間の実際の長時間接続と全二重通信 (通信の際に常に回線を参照する) を実現する HTML の新しいプロトコルです。は、A から B、B から A への双方向信号伝送です)。
現在公開されているプロトコルのほとんどは、ブラウザーの HTTP プロトコルを通じて実現され、クライアントとサーバー間のリクエストが完了するとサーバーが応答します。の場合、サーバーはクライアントにアクティブに応答できず、特定の要件では、サーバー上の最新のデータを取得してクライアントに表示するためにデータをリアルタイムで更新する必要があります。このようなニーズを実現するために、ほとんどの企業はポーリング テクノロジーを使用しています。ポーリング技術では、ブラウザが一定時間(1秒など)ごとにhttpリクエストを発行し、サーバーが最新のデータをブラウザに返すことで、データのリアルタイム更新を実現しています。これにより、明らかに擬似的な長時間接続が実現します。技術的には、いくつかの欠陥が存在します。クライアントはサーバー上のデータが更新されたかどうかを知らないため、一定期間ごとの HTTP リクエストは毎回意味をなさない可能性があり、複数のリクエスト (データ) の間には必ず無効なリクエストが存在します。前回のリクエストから返されたものは今回とまったく同じです)。
ポーリング技術には大きな欠点があることがわかりますが、WebSocket は実際に長い接続を実現し、サーバーがデータを変更したときにこの要求をうまく実現できるのがこの機能です。サーバーは、無効な要求応答を返すことなく、新しいデータをクライアントに返すことができます。
WebSocket 接続を実装するプロセスでは、ブラウザを通じて WebSocket 接続リクエストを送信し、サーバーが応答を送信する必要があります。このプロセスは通常「ハンドシェイク」と呼ばれます。
2: Java は WebSocket を実装します
1。
JSR356 の WebSocket 仕様のサーバー側実装では、javax.websocket.* API を使用し、WebSocket サーバーのエンドポイントとして @ServerEndpoint の注釈を付けることができます。コード例は次のとおりです。 (value="/chatServer" )
パブリック クラス チャット {
プライベート静的 Set
sessions = Collections.synchronizedSet(new HashSet());
private static Listmessages = Collections.synchronizedList(new LinkedList());
private HttpSession httpSession; @OnOpen public void onOpen(Session session,EndpointConfig config) { //to do somthing } @OnMessage public void onMessage(String message, Session session) { } @OnClose public void onClose(Session session, CloseReason reason) { } @OnError public void onError(Throwable t) { } }
コードの説明: 上記の簡潔なコードは、WebSocket サーバーを確立します。 @ServerEndpoint(“/chatServer”) のアノテーション アノテーション エンドポイントは、WebSocket サーバーを示します。 ws://[サーバー IP またはドメイン名]:[サーバー ポート]/demo/chatServer のアクセス エンドポイントで実行されます。クライアント ブラウザは、WebSocket クライアント API への HTTP ロング接続をすでに開始できます。
@ServerEndpoint のアノテーションが付けられたクラスには、パラメーターのないパブリック
コンストラクター
が必要です。@onMessage のアノテーションが付けられた Java メソッドは、受信 WebSocket 情報をテキスト形式またはバイナリ形式で受信するために使用されます。 @OnOpen は、このエンドポイントへの新しい接続が確立されるときに呼び出されます。パラメーターは、接続のもう一方の端に関する詳細を提供します。セッションは、2 つの WebSocket エンドポイント間の会話接続のもう一方の端を示し、HTTPSession と同様の概念として理解できます。 @OnClose は、接続が終了するときに呼び出されます。
アノテーションを使用すると、WebSocket サーバーを作成するのに非常に便利です。コードは単純ですが、私自身の実践中に、サーバーに接続できない、クライアントが報告するだけなど、不可解な問題が多数発生しました。 404 エラーです。しかし、サーバー側のコードを確認すると、問題はないようです。ネットで検索しても、この問題を解決したいという答えは見つかりませんでした。多くの人がこの問題に遭遇し、非常に混乱していたと思います。
ただし、WebSocket によって実装されたサーバー側は、いくつかの特定の要件を非常によく満たしています。
2.
クライアントの実装
クライアントは、js コードを通じてサーバーに接続します。まず、サーバー側で WebSocket オブジェクトを作成し、サーバーに接続する必要があります。 コード:
/******************************************************/ var msgContainer = document.getElementById(“msgContainer”); // 服务器地址 var wsUrl = “ws://127.0.0.1:8080/demo/chatServer”; // 创建WebSocket对象 var webSocket = new WebSocket(wsUrl); // 与服务器建立连接 webSocket.onopen = function() { console.log(“与服务器连接成功!!”); } // 接收到服务器传来的消息 webSocket.onmessage = function(mes) { } // 服务器关闭 webSocket.onclose = function() { console.log(“close!”); } // 服务器异常 webSocket.onerror = function() { console.log(“error!”); } // 浏览器刷新或者关闭时,先关闭当前页面的webSocket对象 window.onbeforunload = function() { webSocket.close(); } // 发送消息 function send() { webSocket.send(jsonMsg); } /******************************************************/
代码(var webSocket = new WebSocket(wsUrl);)是在申请一个 WebSocket 对象,参数是需要连接的服务器端的地址,同 HTTP 协议开头一样,WebSocket 协议的 URL 使用 ws://开头,另外安全的 WebSocket 协议使用 wss://开头。
WebSocket 对象一共支持四个消息 onopen, onmessage, onclose 和 onerror,有了这 4 个事件,我们就可以很容易很轻松的驾驭 WebSocket。
当 Browser 和 WebSocketServer 连接成功后,会触发 onopen 消息;如果连接失败,发送、接收数据失败或者处理数据出现错误,browser 会触发 onerror 消息;当 Browser 接收到 WebSocketServer 发送过来的数据时,就会触发 onmessage 消息,参数 mes中包含 Server 传输过来的数据;当 Browser 接收到 WebSocketServer 端发送的关闭连接请求时,就会触发 onclose 消息。我们可以看出所有的操作都是采用异步回调的方式触发,这样不会阻塞 UI,可以获得更快的响应时间,更好的用户体验。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上がWebSocketの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MicrodatainHTML5enhancesSEOanduserexperiencebyprovidingstructureddatatosearchengines.1)Useitemscope,itemtype,anditempropattributestomarkupcontentlikeproductsorevents.2)TestmicrodatawithtoolslikeGoogle'sStructuredDataTestingTool.3)ConsiderusingJSON-LD

HTML5INTRODUCESNEWINPUTTYPESTENHANCEUSEREXPERIENCE、SIMPRIYIFYDEVELOPMENT、およびIMPROVEACCESSIBILITY.1)自動的にEmailformat.2)FOTIMIZENUMIMERICYPAD.3)およびSimplifyDateAndtimeInputs、reducingEdeDateDateRutedolutution。

H5はHTML5、HTMLの5番目のバージョンです。 HTML5は、Webページの表現力と相互作用を向上させ、セマンティックタグ、マルチメディアサポート、オフラインストレージ、キャンバス描画などの新しい機能を導入し、Webテクノロジーの開発を促進します。

ネットワーク標準へのアクセシビリティとコンプライアンスは、Webサイトにとって不可欠です。 1)アクセシビリティは、すべてのユーザーがウェブサイトに平等にアクセスできるようにします。2)ネットワーク標準は、ウェブサイトのアクセシビリティと一貫性を改善するために続きます。3)アクセシビリティには、セマンティックHTML、キーボードナビゲーション、色コントラスト、代替テキストの使用が必要です。

HTMLのH5タグは、小さいタイトルまたはサブタイトルのタグを付けるために使用される5番目のタイトルです。 1)H5タグは、コンテンツの階層を改良し、読みやすさとSEOを改善するのに役立ちます。 2)CSSと組み合わせて、スタイルをカスタマイズして視覚効果を強化できます。 3)H5タグを合理的に使用して、乱用を避け、論理コンテンツ構造を確保します。

HTML5にWebサイトを構築する方法には、次のものが含まれます。1。セマンティックタグを使用して、などのWebページ構造を定義します。 2。マルチメディアコンテンツ、使用、タグを埋め込みます。 3.フォーム検証やローカルストレージなどの高度な機能を適用します。これらの手順を通じて、明確な構造と豊富な機能を備えた最新のWebページを作成できます。

合理的なH5コード構造により、ページは多くのコンテンツの中で際立っています。 1)コンテンツなどのセマンティックラベルを使用して、構造を明確にするためにコンテンツを整理します。 2)FlexBoxやグリッドなどのCSSレイアウトを介して、さまざまなデバイスでのページのレンダリング効果を制御します。 3)レスポンシブデザインを実装して、ページがさまざまな画面サイズに適応するようにします。

HTML5(H5)以降のバージョンのHTMLの主な違いには、次のものが含まれます。1)H5はセマンティックタグを導入し、2)マルチメディアコンテンツをサポートし、3)オフラインストレージ機能を提供します。 H5は、新しいタグやタグなどのAPIを介してWebページの機能と表現力を高め、ユーザーエクスペリエンスやSEO効果を改善しますが、互換性の問題に注意を払う必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
