ホームページ > ウェブフロントエンド > jsチュートリアル > PHP WebSocket サーバーが接続の確立に失敗し、「Firefox は ws://localhost:12345/ のサーバーへの接続を確立できません」というエラーが表示されるのはなぜですか?

PHP WebSocket サーバーが接続の確立に失敗し、「Firefox は ws://localhost:12345/ のサーバーへの接続を確立できません」というエラーが表示されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-10-26 18:18:03
オリジナル
609 人が閲覧しました

Why is my PHP WebSocket server failing to establish a connection and showing the error

PHP で WebSocket サーバーを作成する方法

問題

PHP で WebSocket サーバーを作成することは、特に古いライブラリやバグのあるライブラリを使用する場合に困難になることがあります。何度も試行したにもかかわらず、質問で提供されたコードは接続の確立に失敗し、「Firefox は ws://localhost:12345/ のサーバーへの接続を確立できません。」

解決策

この問題を解決するには、次の手順を検討してください:

  1. WebSocket プロトコルを理解する: WebSocket のドラフトを読んで、プロトコルの内部動作を理解します。開発プロセス全体を通じて定期的に参照してください。
  2. ハンドシェイク プロシージャの作成: WebSocket ドラフトの指示に基づいて、適切なハンドシェイク プロシージャを実装します。
  3. ハンドルWebSocket メッセージ マスキング: WebSocket 経由で送受信されるデータは通常、マスクされます。これを考慮して、エンコードおよびデコードのロジックを実装します。
  4. 接続の終了を処理します: WebSocket 接続の終了を処理するロジックを追加します。
  5. 信頼性の高い WebSocket ライブラリを使用します。 : Ratchet や Symfony Websocket など、適切に保守された WebSocket ライブラリの使用を検討してください。
  6. テストとトラブルシューティング: サーバーを徹底的にテストし、エラーや接続の問題をデバッグします。

コード例

次の PHP コードは、Ratchet を使用した WebSocket サーバー実装の簡単な例を示しています。

<code class="php">use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;

class MyWebSocketHandler implements MessageComponentInterface
{
    private $clients;

    public function __construct()
    {
        $this->clients = new SplObjectStorage;
    }

    public function onOpen(ConnectionInterface $conn)
    {
        // Send a welcome message to the client
        $conn->send('Welcome to the WebSocket server!');
        
        // Add the client to the collection
        $this->clients->attach($conn);
    }

    public function onMessage(ConnectionInterface $from, $msg)
    {
        // Send the message to all connected clients
        foreach ($this->clients as $client) {
            $client->send($msg);
        }
    }

    public function onClose(ConnectionInterface $conn)
    {
        // Remove the client from the collection
        $this->clients->detach($conn);
    }

    public function onError(ConnectionInterface $conn, \Exception $e)
    {
        // Handle errors
        $conn->close();
    }
}</code>
ログイン後にコピー

結論

での WebSocket サーバーの作成PHP では、WebSocket プロトコルを深く理解し、その機能を適切に実装する必要があります。提示された手順に従い、信頼性の高いライブラリを活用することで、リアルタイム通信を促進する堅牢な WebSocket サーバーを確立できます。

以上がPHP WebSocket サーバーが接続の確立に失敗し、「Firefox は ws://localhost:12345/ のサーバーへの接続を確立できません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート