ホームページ  >  記事  >  PHPフレームワーク  >  ワーカー開発者が知っておくべきいくつかの問題

ワーカー開発者が知っておくべきいくつかの問題

尚
転載
2019-11-26 15:44:565182ブラウズ

workerman の次のチュートリアル コラムでは、workerman 開発者が知っておくべきいくつかの問題を紹介します。困っている友人に役立つことを願っています。

ワーカー開発者が知っておくべきいくつかの問題

1. Workerman は Apache や nginx に依存しません

workerman 自体はすでに apache/ に似たコンテナですnginx. PHP 環境に問題がない限り、workerman は実行できます。

2. Workerman はコマンドラインから起動します

起動方法はコマンドによる apache と同様です (workerman は一般の Web スペースでは使用できません)。起動インターフェイスは次のようなものです

ワーカー開発者が知っておくべきいくつかの問題

3. 長い接続にはハートビートを追加する必要があります

ハートビートは次のとおりです。長い接続にはハートビートを追加する必要があります。長い接続にはハートビートを追加し、重要なことを 3 回言う必要があります。

長時間通信のない長い接続は、必ずファイアウォールによって強制終了され、切断されます。心拍数のない長期接続アプリケーションは、ボスがKOするのを待っているだけです。

4. 通信するには、クライアントとサーバーのプロトコルが対応している必要があります。

これは、開発者の間で非常に一般的な問題です。たとえば、クライアントが WebSocket プロトコルを使用する場合、接続して通信するには、サーバーも WebSocket プロトコル (server new Worker('websocket://0.0.0.0...')) を使用する必要があります。

ブラウザのアドレス バーの WebSocket プロトコル ポートにアクセスしたり、WebSocket プロトコルを使用してベア TCP プロトコル ポートにアクセスしたりしないでください。プロトコルは対応している必要があります。

ここでの原則は、イギリス人とコミュニケーションを取りたい場合は英語を使用するのと同じです。日本人とコミュニケーションを取りたいなら日本語を使いましょう。ここでの言語は通信契約に似ており、双方 (クライアントとサーバー) が同じ言語を使用して通信する必要があり、そうでないと通信できません。

5. 接続失敗の考えられる理由

Workerman を初めて使い始めるときによくある問題は、クライアントがサーバーへの接続に失敗することです。理由は通常次のとおりです:

1. サーバー ファイアウォール (クラウド サーバー セキュリティ グループを含む) が接続をブロックします (50% の確率でこれが発生します)

2. クライアントが使用するプロトコル

#3. IP またはポートが間違って書き込まれています (確率 15%)

#4. サーバーが起動されていません

#6. exit die sleep ステートメントは使用しないでください。

exit die ステートメントをビジネスで実行すると、プロセスが終了し、WORKER EXIT UNEXPECTED エラーが表示されます。もちろん、プロセスが終了すると、新しいプロセスがすぐに再起動され、サービスが継続されます。戻る必要がある場合は、return を呼び出すことができます。 sleep ステートメントによりプロセスがスリープ状態になります。スリープ プロセス中はビジネスは実行されず、フレームワークも実行を停止するため、プロセスのすべてのクライアント リクエストは処理できなくなります。

7. ビジネス コードに無限ループを含めないでください

ビジネス コードに無限ループを含めないでください。そうしないと、制御がシステムに返されません。ワーカー フレームワークが無効になり、処理中の他のクライアント メッセージを受信できなくなります。

8. コードを変更する場合は Workerman を再起動します

Workerman はメモリ常駐フレームワークです。コードを変更する場合、その効果を確認するには Workerman を再起動する必要があります。新しいコード。

9. 長期接続アプリケーションには GatewayWorker フレームワークを使用することをお勧めします

多くの開発者は、ワーカーマンを使用してインスタント メッセージングなどの長期接続アプリケーションを開発しています。 、モノのインターネットなど、長期接続アプリケーション GatewayWorker フレームワークを直接使用することをお勧めします。これは、長時間接続アプリケーションのバックエンドとしてよりシンプルかつ簡単に使用できるように、workerman に基づいて特別にカプセル化されています。

10. より高い同時実行性のサポート

同時ビジネス接続数が 1,000 を超え、同時にオンラインになっている場合は、必ず Linux カーネルを最適化し、イベント拡張またはlibevent拡張。 workerman チュートリアルの詳細については、

workerman チュートリアル

列に注目してください。

以上がワーカー開発者が知っておくべきいくつかの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はworkermanで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。