ホームページ > 記事 > PHPフレームワーク > Workerman クライアントが接続できない場合はどうすればよいですか?
#workermanクライアントが接続できない場合はどうすればよいですか?
#クライアント接続失敗の原因接続が失敗すると、クライアントは通常、接続拒否と接続タイムアウトという 2 つのエラーを報告します
接続拒否# 通常、理由は次のとおりです:
1. クライアントが接続するポートが間違っています
2. クライアントが接続するドメイン名または IP が間違っています
3. クライアントが接続にドメイン名を使用する場合、ドメイン名は間違ったサーバー ip
4 を指している可能性があります。サーバーが起動していないか、ポートがは監視されていません
5. ネットワーク プロキシ ソフトウェアが使用されています
6. サーバー監視 IP とアクセス アドレスが同じアドレス セグメントにありません。たとえば、サーバーが 127.0.0.1 を監視している場合、クライアントは 127.0.0.1 を介してのみ接続でき、LAN IP または外部ネットワーク IP を介して接続することはできません。ローカル マシン、内部ネットワーク、および外部ネットワークが接続できるように、リスニング アドレスを 0.0.0.0 に設定することをお勧めします。
接続タイムアウトこれは通常、次の理由によるものです:
1. サーバーのファイアウォールが接続をブロックしています。ファイアウォールを一時的に閉じることができます。クラウド サーバーの場合は、セキュリティ グループによって接続の確立が妨げられる場合もあります。管理バックグラウンドで対応するポートを開く必要があります。
3.サーバーが存在しないか、起動していません。
4. クライアントが接続にドメイン名を使用する場合、ドメイン名が間違ったサーバー IP
5 を指している可能性があります。 client はサーバーのイントラネット IP であり、クライアントとサーバーは同じ LAN 内にありません
その他のエラー
発生したエラーが接続拒否および接続ではない場合1. クライアントが使用する通信プロトコルがサーバーと一致していません。
たとえば、サーバーは http 通信プロトコルを使用し、クライアントは WebSocket 通信プロトコルを使用して接続できません。クライアントが WebSocket プロトコルを使用して接続する場合、サーバーも WebSocket プロトコルを使用する必要があります。サーバーが http プロトコルのサービスの場合、クライアントは http プロトコルを使用してアクセスする必要があります。
ここでの原則は、イギリス人とコミュニケーションを取りたい場合は英語を使用するのと同じです。日本人とコミュニケーションを取りたいなら日本語を使いましょう。ここでの言語は通信プロトコルに似ており、双方 (クライアントとサーバー) が同じ言語を使用して通信する必要があり、そうでないと通信できません。
一貫性のない通信プロトコルによって発生する一般的なエラーは次のとおりです:
WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: Unexpected response code: xxx WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE
解決策:
上記の 2 つのエラーから、クライアントが ws 接続と websocket プロトコルを使用していることがわかります。 。サーバーも WebSocket プロトコルを使用する必要があります。サーバー側のリスニング コードの一部では、たとえば次のように、通信する WebSocket プロトコルを指定する必要があります。
gatewayWorker の場合、コードのリスニング部分同様です
// websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动 $gateway = new Gateway('websocket://0.0.0.0:xxxx');
ワーカーマンの場合は
// websocket协议,这样客户端才能用ws://...来连。xxxx为端口不用改动 $worker = new Worker('websocket://0.0.0.0:xxxx');
推奨:
ワーカーマン チュートリアル
以上がWorkerman クライアントが接続できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。