ホームページ >PHPフレームワーク >Workerman >Workermanを使用してシンプルなUDPサーバーを作成するにはどうすればよいですか?
Workermanを使用してシンプルなUDPサーバーを作成するのは簡単です。 Workermanの強さは、同時接続を処理するためのシンプルさと効率性にあり、UDPでもコネクションレスでも良い選択となっています。基本的な例は次のとおりです。 '/workerman/autoloader.php'; Workerman \ Workerを使用してください。 workerman \ connection \ udpconnectionを使用します。 $ worker = new Worker(" udp://0.0.0.0:8080"); $ worker-> onmessage = function($ connection、$ data){//受信したデータをクライアントに戻します。 $ connection-> send($ data); //受信したデータ(オプション)echo"受信:" 。 $データ。 " \ n&quot ;; };労働者:: ranall(); ?>
このコードスニペットには、最初にworkerman autoloaderが含まれます。次に、利用可能なすべてのインターフェイス( 0.0.0.0
)のポート8080でリスニングされるUDPワーカーを作成します。 onmessage
コールバック関数は、着信データを処理します。この例では、受信したデータを送信者にエコーするだけです。最後に、 worker :: runall()
はワーカーを起動します。 __ dir__を交換することを忘れないでください。 '/workerman/autoloader.php'
workerman autoloaderへの正しいパスを使用してください。作曲家を使用してワークマンをインストールする必要があります( ComposerがWorkerman/Workerman
を必要とします)。ただし、上記の単純なサーバーの例とはわずかに異なるアプローチが必要です。データを送信する際には、ブロードキャストアドレス(通常255.255.255.255)を指定する必要があります。コードを変更してブロードキャストを送信する方法は次のとおりです。
<code class="php">&lt;?php // ...(前のコード)... $ worker-&gt; onmessage = function($ connection、$ data){// broadcast message $ broadcast_address = '255.255.25555555555:8080 //必要に応じてポートを調整します$ worker-&gt; sendto($ broadcast_address、$ data); //受信したデータ(オプション)echo&quot;受信:&quot; 。 $データ。 &quot;ブロードキャスト:&quot; 。 $ broadcast_address。 &quot; \ n&quot ;; }; // ...(コードの残り)...?&gt; </code>
この変更は $ worker-&gt; send()
を使用して、受信したデータをブロードキャストアドレスに送信します。 UDPブロードキャストは、ネットワーク構成(ファイアウォールなど)によって制限される可能性があることを忘れないでください。また、慎重に処理されなければ、嵐の放送の可能性に注意してください。ネットワークの混雑を避けるために、ブロードキャスト頻度とブロードキャストパケットのサイズを制限することを検討してください。
error_log()
関数は、エラーをシステムのエラーログにログに記録します。 logmessage
関数は、 udp_server.log
という名前のファイルにログを書き込むカスタムロギングメカニズムを提供します。このロギングを適応させて、モノロジーなどのより洗練されたロギングライブラリを使用して、ログ回転や異なるログハンドラーなどのより高度な機能を使用できます。特定のニーズとアプリケーション要件に合わせて、エラー処理とロギング戦略を調整することを忘れないでください。以上がWorkermanを使用してシンプルなUDPサーバーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。