Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah pelayan PHP WebSocket saya gagal mewujudkan sambungan dan menunjukkan ralat \"Firefox tidak dapat mewujudkan sambungan ke pelayan di ws://localhost:12345/\"?

Mengapakah pelayan PHP WebSocket saya gagal mewujudkan sambungan dan menunjukkan ralat \"Firefox tidak dapat mewujudkan sambungan ke pelayan di ws://localhost:12345/\"?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 18:18:03547semak imbas

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

Cara Membuat Pelayan WebSocket dalam PHP

Masalah

Membuat pelayan WebSocket dalam PHP boleh mencabar, terutamanya apabila menggunakan perpustakaan lapuk atau buggy. Walaupun banyak percubaan, kod yang diberikan dalam soalan gagal mewujudkan sambungan, mengakibatkan ralat: "Firefox tidak dapat mewujudkan sambungan ke pelayan di ws://localhost:12345/."

Penyelesaian

Untuk mengatasi isu ini, pertimbangkan langkah berikut:

  1. Fahami Protokol WebSocket: Baca draf WebSocket untuk memahami kerja dalaman protokol. Rujuknya dengan kerap sepanjang proses pembangunan.
  2. Buat Prosedur Berjabat Tangan: Laksanakan prosedur jabat tangan yang betul berdasarkan arahan dalam draf WebSocket.
  3. Kendalikan Penyamaran Mesej WebSocket: Data yang dihantar dan diterima melalui WebSocket biasanya bertopeng. Laksanakan logik pengekodan dan penyahkodan untuk mengambil kira perkara ini.
  4. Kendalikan Penutupan Sambungan: Tambahkan logik untuk mengendalikan penutupan sambungan WebSocket.
  5. Gunakan Perpustakaan WebSocket yang Boleh Dipercayai : Pertimbangkan untuk menggunakan perpustakaan WebSocket yang diselenggara dengan baik seperti Ratchet atau Symfony Websocket.
  6. Uji dan Selesaikan Masalah: Uji pelayan dengan teliti dan nyahpepijat sebarang ralat atau isu sambungan.

Contoh Kod

Kod PHP berikut menyediakan contoh mudah pelaksanaan pelayan WebSocket menggunakan Ratchet:

<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>

Kesimpulan

Mencipta pelayan WebSocket dalam PHP memerlukan pemahaman yang mendalam tentang protokol WebSocket dan pelaksanaan yang betul bagi ciri-cirinya. Dengan mengikut langkah yang dibentangkan dan memanfaatkan perpustakaan yang boleh dipercayai, adalah mungkin untuk mewujudkan pelayan WebSocket yang teguh yang memudahkan komunikasi masa nyata.

Atas ialah kandungan terperinci Mengapakah pelayan PHP WebSocket saya gagal mewujudkan sambungan dan menunjukkan ralat \"Firefox tidak dapat mewujudkan sambungan ke pelayan di ws://localhost:12345/\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn