WebSocket Chat

Esta interface simples permite inserir uma mensagem e enviá-la ao servidor WebSocket. Todos os clientes conectados receberão a mensagem e a exibirão.

Etapa 5: teste a conexão WebSocket

  1. Inicie seu servidor WebSocket executando php start_server.php.
  2. Abra index.html em um navegador.
  3. Abra a mesma página em outro navegador ou guia para simular vários clientes.

Quando você envia uma mensagem de um cliente, ela aparecerá nos navegadores de todos os clientes conectados.


Vantagens de usar WebSockets em PHP


Casos de uso para WebSockets em PHP


Conclusão

WebSockets fornecem uma solução poderosa para comunicação full-duplex em tempo real entre o cliente e o servidor, ideal para sistemas de bate-papo, notificações ao vivo e outros aplicativos em tempo real. Ao usar PHP com bibliotecas como Ratchet, você pode facilmente configurar um servidor WebSocket e integrá-lo em seus aplicativos para melhor envolvimento e capacidade de resposta do usuário.

","image":"http://www.luping.net/uploads/20240930/172769436566fa861d5b103.jpg","datePublished":"2024-11-06T15:21:16+08:00","dateModified":"2024-11-06T15:21:16+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Compreendendo WebSockets em PHP

Compreendendo WebSockets em PHP

Publicado em 2024-11-06
Navegar:919

Understanding WebSockets in PHP

WebSockets fornecem um canal de comunicação full-duplex em tempo real por meio de uma única conexão TCP. Ao contrário do HTTP, onde o cliente envia solicitações ao servidor e aguarda uma resposta, os WebSockets permitem a comunicação contínua entre o cliente e o servidor sem a necessidade de múltiplas solicitações. Isso é ideal para aplicativos que exigem atualizações em tempo real, como aplicativos de bate-papo, notificações ao vivo e jogos online.

Neste guia, exploraremos WebSockets, como eles funcionam e como implementá-los em PHP.


O que são WebSockets?

WebSockets permitem a comunicação interativa entre um navegador da web (ou qualquer outro cliente) e um servidor. Aqui estão os principais aspectos dos WebSockets:

  1. Comunicação Full-Duplex: Tanto o cliente quanto o servidor podem enviar mensagens entre si a qualquer momento, tornando a conexão mais eficiente do que a pesquisa HTTP tradicional.
  2. Conexão persistente: Uma vez estabelecida, a conexão WebSocket permanece aberta até que seja explicitamente fechada pelo cliente ou pelo servidor.
  3. Baixa Latência: Como os WebSockets eliminam a necessidade de abrir novas conexões para cada solicitação, eles reduzem a latência, tornando-os ideais para comunicação em tempo real.

Como funcionam os WebSockets

  1. Handshake: A comunicação começa com uma solicitação HTTP. O cliente envia uma solicitação HTTP com um cabeçalho Upgrade para mudar a conexão de HTTP para WebSockets.
  2. Conexão estabelecida: Assim que o servidor confirmar o handshake, a conexão será estabelecida e tanto o cliente quanto o servidor poderão começar a enviar e receber mensagens.
  3. Mensagens: os dados são transmitidos por meio de frames, que são leves e podem ser enviados e recebidos sem a sobrecarga dos cabeçalhos HTTP.
  4. Término da conexão: O cliente ou o servidor podem encerrar a conexão.

Quando usar WebSockets

  • Aplicativos em tempo real: como aplicativos de bate-papo, notificações ao vivo e edição colaborativa.
  • Jogos: Para jogos online multijogador onde são necessárias atualizações frequentes.
  • Feeds ao vivo: streaming de preços de ações, resultados esportivos ou dados em tempo real de dispositivos IoT.
  • Ferramentas de colaboração: para aplicativos como o Google Docs, onde vários usuários precisam ver atualizações em tempo real.

Implementando WebSockets em PHP

Para implementar WebSockets em PHP, você pode usar uma biblioteca como Ratchet, uma biblioteca PHP projetada especificamente para comunicação bidirecional em tempo real usando WebSockets.


Implementação passo a passo de WebSocket usando Ratchet

Etapa 1: Instale o Ratchet via Composer

Primeiro, você precisa instalar a biblioteca Ratchet. Supondo que você tenha o Composer instalado, você pode executar o seguinte comando:

composer require cboden/ratchet

Etapa 2: Crie um servidor WebSocket em PHP

Vamos criar um servidor WebSocket simples que irá lidar com conexões e mensagens.

  1. Crie uma classe de servidor WebSocket em WebSocketServer.php:
clients = new \SplObjectStorage;
    }

    // Called when a new client connects
    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
        echo "New connection: ({$conn->resourceId})\n";
    }

    // Called when a client sends a message
    public function onMessage(ConnectionInterface $from, $msg) {
        echo "New message: $msg\n";

        foreach ($this->clients as $client) {
            if ($from !== $client) {
                // Send the message to everyone except the sender
                $client->send($msg);
            }
        }
    }

    // Called when a connection is closed
    public function onClose(ConnectionInterface $conn) {
        $this->clients->detach($conn);
        echo "Connection closed: ({$conn->resourceId})\n";
    }

    // Called if an error occurs
    public function onError(ConnectionInterface $conn, \Exception $e) {
        echo "Error: {$e->getMessage()}\n";
        $conn->close();
    }
}

Esta classe implementa MessageComponentInterface do Ratchet, que define métodos para lidar com novas conexões, mensagens recebidas, conexões fechadas e erros.

Etapa 3: Executando o servidor WebSocket

Crie um novo script PHP para iniciar o servidor WebSocket, por exemplo, start_server.php.

run();

Você pode iniciar o servidor executando este script:

php start_server.php

O servidor agora estará rodando em ws://localhost:8080.

Etapa 4: Crie um front-end para conectar-se ao servidor WebSocket

Agora, vamos criar um arquivo HTML com jQuery e JavaScript para conectar ao servidor WebSocket.

  1. Crie um arquivo HTML index.html:


    WebSocket Chat

WebSocket Chat

Esta interface simples permite inserir uma mensagem e enviá-la ao servidor WebSocket. Todos os clientes conectados receberão a mensagem e a exibirão.

Etapa 5: teste a conexão WebSocket

  1. Inicie seu servidor WebSocket executando php start_server.php.
  2. Abra index.html em um navegador.
  3. Abra a mesma página em outro navegador ou guia para simular vários clientes.

Quando você envia uma mensagem de um cliente, ela aparecerá nos navegadores de todos os clientes conectados.


Vantagens de usar WebSockets em PHP

  • Atualizações em tempo real: WebSockets fornecem atualizações em tempo real sem a sobrecarga da pesquisa HTTP.
  • Menor Latência: Como a conexão permanece aberta, as mensagens podem ser enviadas imediatamente, reduzindo a latência.
  • Comunicação Bidirecional: Tanto o servidor quanto o cliente podem enviar mensagens entre si simultaneamente, ao contrário do HTTP tradicional, onde a comunicação é iniciada pelo cliente.

Casos de uso para WebSockets em PHP

  • Aplicativos de bate-papo: WebSockets são perfeitos para aplicativos de bate-papo em tempo real, onde as mensagens precisam ser enviadas instantaneamente para todos os usuários.
  • Notificações ao vivo: para aplicativos que precisam enviar notificações ao vivo (por exemplo, mídias sociais, preços de ações).
  • Ferramentas colaborativas em tempo real: WebSockets permitem colaboração em tempo real, como edição de documentos ao vivo.
  • Jogos Online: Os jogos online multijogador se beneficiam da comunicação de baixa latência dos WebSockets.

Conclusão

WebSockets fornecem uma solução poderosa para comunicação full-duplex em tempo real entre o cliente e o servidor, ideal para sistemas de bate-papo, notificações ao vivo e outros aplicativos em tempo real. Ao usar PHP com bibliotecas como Ratchet, você pode facilmente configurar um servidor WebSocket e integrá-lo em seus aplicativos para melhor envolvimento e capacidade de resposta do usuário.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/mdarifulhaque/understanding-websockets-in-php-2cli?1 Se houver alguma infração, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3