Swooleを使ってWebSocket通信を実装する方法
Swoole は、非同期 IO、マルチプロセス、マルチスレッド、コルーチン、その他の機能をサポートする高性能 PHP コルーチン ネットワーク フレームワークです。その中でも、Swoole が提供する WebSocket コンポーネントは、リアルタイムの双方向通信を実現するために使用でき、リアルタイム アプリケーションの構築に最適です。この記事では、Swooleを使用してWebSocket通信を実装する方法と、具体的なコード例を紹介します。
1. 環境の準備
Swoole を使用して WebSocket 通信を実装する前に、Swoole 拡張機能がインストールされていることを確認する必要があります。これは、コマンド
pecl install swoole
を使用してインストールするか、公式 GitHub リポジトリからソース コード ビルドをダウンロードできます。
2. WebSocket サーバーの作成
Swoole の WebSocket コンポーネントをコードに導入し、WebSocket サーバーを作成し、クライアントとの接続を監視します。コードは次のとおりです。
use SwooleWebSocketServer; // 创建WebSocket服务器 $server = new Server('0.0.0.0', 9501); // 监听WebSocket连接事件 $server->on('open', function (Server $server, $request) { echo "Client {$request->fd} connected "; }); // 启动服务器 $server->start();
上記のコードは、リスニング ポート 9501 を持つ WebSocket サーバーを作成し、接続の確立時に接続されたクライアントのファイル記述子 (fd) を出力します。
3. WebSocket メッセージの処理
WebSocket サーバーがクライアントとの接続を確立すると、クライアントはサーバーにメッセージを送信できます。サーバーはクライアントとのメッセージ イベントをリッスンして処理する必要があります。 WebSocket メッセージの処理プロセスは HTTP リクエストのプロセスと似ており、メッセージ ヘッダーを解析してメッセージ本文を取得することで、メッセージの内容を取得できます。コードは次のとおりです。
// 监听WebSocket消息事件 $server->on('message', function (Server $server, $frame) { echo "Received message: {$frame->data} "; });
上記のコードは、WebSocket メッセージ イベントをリッスンし、メッセージの受信時にメッセージの内容を出力します。
4. WebSocket クライアントへのメッセージの送信
WebSocket サーバーのクライアントにメッセージを送信するには、サーバーの push
メソッドを使用する必要があります。このメソッドは、クライアントのファイル記述子と、送信する必要があるメッセージの内容を受け入れます。コードは次のとおりです。
// 监听WebSocket消息事件 $server->on('message', function (Server $server, $frame) { echo "Received message: {$frame->data} "; // 向客户端发送消息 $server->push($frame->fd, 'Server received message: '.$frame->data); });
上記のコードは、WebSocket メッセージの処理時にクライアントにメッセージを返信します。
5. 完全なコード例
use SwooleWebSocketServer; // 创建WebSocket服务器 $server = new Server('0.0.0.0', 9501); // 监听WebSocket连接事件 $server->on('open', function (Server $server, $request) { echo "Client {$request->fd} connected "; }); // 监听WebSocket消息事件 $server->on('message', function (Server $server, $frame) { echo "Received message: {$frame->data} "; // 向客户端发送消息 $server->push($frame->fd, 'Server received message: '.$frame->data); }); // 启动服务器 $server->start();
6. WebSocket クライアント
WebSocket サーバーの構築が完了したら、WebSocket クライアントを使用してサーバーにメッセージを送信する必要がありますサーバーからの応答メッセージを受信します。以下は、WebSocket クライアントのサンプル コードです。
// 创建WebSocket连接 const ws = new WebSocket('ws://localhost:9501'); // 监听WebSocket连接事件 ws.addEventListener('open', function (event) { console.log('Connected to WebSocket server'); // 发送消息 ws.send('Hello, Swoole WebSocket'); }); // 监听WebSocket消息事件 ws.addEventListener('message', function (event) { console.log('Received message:', event.data); });
上記のコードは、JavaScript を使用して WebSocket 接続を作成し、接続の確立後に WebSocket サーバーにメッセージを送信します。メッセージがサーバーによって処理されると、サーバーは応答メッセージをクライアントに送り返します。クライアントはメッセージ イベントをリッスンすることで応答メッセージを受信できます。
7. 概要
この記事では、Swoole を使用して WebSocket 通信を実装する方法を紹介し、WebSocket サーバーの作成方法、メッセージの処理方法、およびクライアントへのメッセージの送信方法をコード例を通して示します。 Swoole の WebSocket コンポーネントを使用すると、リアルタイムの双方向通信アプリケーションを簡単に構築できます。
以上がSwooleを使ってWebSocket通信を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











前回の記事 (リンク) では、Xiao Zaojun が ISDN、xDSL、10GPON に至るブロードバンド技術の発展の歴史を紹介しました。今日は、今後の新世代の光ファイバーブロードバンド技術、50GPON についてお話しましょう。 █F5G と F5G-A 50GPON を紹介する前に、F5G と F5G-A について話しましょう。 2020年2月、ETSI(欧州電気通信標準化協会)は、10GPON+FTTR、Wi-Fi6、200G光伝送/アグリゲーション、OXCなどの技術をベースとした固定通信ネットワーク技術体系を推進し、それを第5世代、すなわちF5Gと名付けました。固定ネットワーク通信技術 (第 5 世代固定ネットワーク)。 F5Gは固定ネットワークです

PHP と WebSocket: リアルタイム データ転送のベスト プラクティス方法 はじめに: Web アプリケーション開発では、リアルタイム データ転送は非常に重要な技術要件です。従来の HTTP プロトコルは要求応答モデルのプロトコルであり、リアルタイムのデータ送信を効果的に実現できません。リアルタイム データ送信のニーズを満たすために、WebSocket プロトコルが登場しました。 WebSocket は、単一の TCP 接続上で全二重通信を行う方法を提供する全二重通信プロトコルです。 Hと比べて

Laravel で Swoole コルーチンを使用すると、大量のリクエストを同時に処理でき、次のような利点があります: 同時処理: 複数のリクエストを同時に処理できます。高いパフォーマンス: Linux の epoll イベント メカニズムに基づいて、リクエストを効率的に処理します。低リソース消費: 必要なサーバー リソースが少なくなります。統合が簡単: Laravel フレームワークとのシームレスな統合が可能で、使いやすいです。

この記事では、どちらも信頼できるデータ配信方法である Server Sent Events (SSE) と WebSocket を比較します。通信方向、基盤となるプロトコル、セキュリティ、使いやすさ、パフォーマンス、メッセージ構造、使いやすさ、テストツールを含む 8 つの側面で分析します。これらの側面の比較は次のように要約されます。 カテゴリ サーバー送信イベント (SSE) WebSocket の通信方向 単方向 双方向 基礎となるプロトコル HTTP WebSocket プロトコルのセキュリティ HTTP と同じ 既存のセキュリティの脆弱性 使いやすさ セットアップが簡単 セットアップが複雑 パフォーマンスが速い メッセージ送信速度が高い メッセージ処理の影響を受けるおよび接続管理 メッセージ構造 プレーンテキストまたはバイナリ 使いやすさ 広く利用可能 WebSocket の統合に役立つ

Swoole プロセスではユーザーを切り替えることができます。具体的な手順は、プロセスの作成、プロセス ユーザーの設定、プロセスの開始です。

Swoole と Workerman はどちらも高性能の PHP サーバー フレームワークです。 Swoole は、非同期処理、優れたパフォーマンス、スケーラビリティで知られており、多数の同時リクエストと高スループットを処理する必要があるプロジェクトに適しています。 Workerman は、使いやすさや同時実行量が少ないプロジェクトに適した直感的な API を備え、非同期モードと同期モードの両方の柔軟性を提供します。

原題:「ワイヤレスマウスはどのようにしてワイヤレスになるのか?」 》ワイヤレスマウスは今日のオフィスコンピュータの標準機能となり、今後は長いコードを引きずる必要はなくなります。しかし、ワイヤレスマウスはどのように機能するのでしょうか?今日は、No.1 ワイヤレス マウスの開発の歴史について学びます。ワイヤレス マウスは 1984 年に世界初のワイヤレス マウスを開発しましたが、このワイヤレス マウスは信号として赤外線を使用していたことをご存知ですか?キャリアは下の写真のようになると言われていますが、後にパフォーマンス上の理由で失敗しました。ロジクールがついに 27MHz で動作するワイヤレス マウスの開発に成功したのは、10 年後の 1994 年でした。この 27MHz の周波数も、長い間ワイヤレス マウスとして使用されてきました。

PHP Websocket 開発ガイド: リアルタイム変換機能の実装 はじめに: インターネットの発展に伴い、さまざまなアプリケーション シナリオでリアルタイム通信の重要性がますます高まっています。新しい通信プロトコルとして、Websocket はリアルタイム通信を適切にサポートします。この記事では、PHP を使用して Websocket アプリケーションを開発し、リアルタイム翻訳機能を組み合わせてその具体的なアプリケーションをデモンストレーションする方法を詳しく説明します。 1. Websocket プロトコルとは何ですか? Websocket プロトコルは、
