node.js websockets:リアルタイム通信は簡単になりました
このチュートリアルでは、ダッシュボード、チャットアプリケーション、マルチプレイヤーゲームなどのダイナミックでリアルタイムのアプリケーションを作成するためのnode.jsのWebSocketsのパワーを調査します。 従来のHTTPのリクエスト応答モデルとは異なり、WebSocketsはブラウザとサーバーの間で永続的な双方向通信チャネルを確立します。 なぜwebsocketsなのか? HTTPの制限を超えてWebはHTTPのリクエスト応答サイクルに依存しています。 ロングポルリングテクニックはリアルタイムの更新を模倣できますが、非効率的です。サーバーセントイベントは一方向サーバーからブラウザーへの通信を提供しますが、真のリアルタイムインタラクティブにはWebSocketが必要です。 WebSocketsを理解するWebSocketsはTCPプロトコル(ws://またはSecure WSS://)を利用します。 ポート80および443で動作することはできますが、ほとんどの最新のブラウザー(2012年以降)はこのプロトコルをサポートしています。 典型的なセットアップには、静的コンテンツ用のWebサーバーと、リアルタイム通信用の個別のWebsocketサーバーが含まれます。 最初のWebSocketリクエストはチャネルを開き、クライアントとサーバーの両方が反対側のイベントをトリガーするメッセージを送信できるようにします。 ダイレクトブラウザーからブラウザーへの通信はサポートされていないことに注意してください。すべてのメッセージングはサーバーを通過します。
node.js にWebSocketsの実装
node.jsにはネイティブのWebsocketサポートがありませんが、モジュール(および他の多くのモジュール)はこの機能を提供します。 このチュートリアルでは、簡単なチャットアプリケーションの例を使用しています
QuickStart:簡単なチャットアプリケーション
ws
リポジトリをクローンします:
依存関係をインストール:
git clone https://github.com/craigbuckler/node-wschat
アプリケーションを開始:cd node-wschat && npm install
チャットへのアクセス:npm start
http://localhost:3000/
を使用してWebSocket接続を管理します。 重要なイベントには次のものがあります:
:新しいブラウザが接続されています。
:ブラウザがメッセージを送信します。 サーバーはこれをすべての接続されたクライアントにブロードキャストします
ws
connection
message
クライアント側のJavaScriptは、WebSocket APIを使用して接続し、メッセージ(ws.send()
)を送信し、入ってくるメッセージ('message'
イベント)を処理します。 エラーハンドリング('error'
イベント)と接続クロージング(ws.close()
)も実装されています。 アプリケーションは、メッセージフォーマットにJSONを使用します
高度な考慮事項
結論
node.jsは、WebSocketの実装を簡素化し、強力なリアルタイムアプリケーションの作成を可能にします。 これらのアプリケーションを設計およびコーディングするには、セキュリティ、スケーラビリティ、効率を慎重に検討する必要がありますが、基礎となるテクノロジーは容易にアクセスしやすく多用途です。 永続的な接続とセキュリティを適切に管理するという固有の課題に対処することを忘れないでください。以上がnode.jsでWebSocketsを使用してリアルタイムアプリを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。