PHPackages                             ryan-junio-oliveira/websocket-channels - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ryan-junio-oliveira/websocket-channels

ActiveLibrary

ryan-junio-oliveira/websocket-channels
======================================

Biblioteca PHP para servidor WebSocket com suporte a canais públicos e fechados usando Ratchet

1.0.0(1y ago)12MITPHPPHP &gt;=8.2

Since Mar 2Pushed 1y ago1 watchersCompare

[ Source](https://github.com/ryan-junio-oliveira/websocket-channels)[ Packagist](https://packagist.org/packages/ryan-junio-oliveira/websocket-channels)[ RSS](/packages/ryan-junio-oliveira-websocket-channels/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Biblioteca WebSocket com Suporte a Canais Públicos e Fechados
=============================================================

[](#biblioteca-websocket-com-suporte-a-canais-públicos-e-fechados)

Esta biblioteca PHP fornece um servidor WebSocket usando a biblioteca Ratchet, permitindo comunicação em **canais públicos** e **canais fechados**. Clientes podem se inscrever em canais específicos ou se comunicar publicamente com todos os outros clientes conectados.

Instalação
----------

[](#instalação)

### Pré-requisitos

[](#pré-requisitos)

- PHP 8.2 ou superior
- Composer (para instalação da biblioteca)

### Passos de Instalação

[](#passos-de-instalação)

1. Instale a biblioteca via Composer:

    ```
    composer require ryan-junio-oliveira/websocket-channels
    ```
2. Após a instalação, crie um arquivo `websocket-server.php` e inicialize o servidor conforme o código de exemplo abaixo.

Exemplo de Uso
--------------

[](#exemplo-de-uso)

### Servidor WebSocket

[](#servidor-websocket)

Após instalar a biblioteca, você pode rodar um servidor WebSocket utilizando o seguinte código:

```
require_once('vendor/autoload.php');

$web = new \WebSocketChannels\WebSocketServer();
$web->run();
```

### Executando o Servidor

[](#executando-o-servidor)

Execute o servidor com o seguinte comando:

```
php websocket-server.php
```

O servidor WebSocket será iniciado na porta `8080`, pronto para aceitar conexões.

Conexão ao WebSocket no Frontend
--------------------------------

[](#conexão-ao-websocket-no-frontend)

Aqui está um exemplo simples de como conectar-se ao servidor WebSocket e enviar mensagens públicas e privadas utilizando JavaScript:

```
let socket = new WebSocket("ws://localhost:8080");

socket.onopen = function(e) {
    console.log("Conexão estabelecida");

    // Inscrevendo-se em um canal fechado com um ID único
    let channelId = "unique_channel_id";
    socket.send(JSON.stringify({
        action: "subscribe",
        channel_id: channelId
    }));

    // Enviando uma mensagem pública
    socket.send(JSON.stringify({
        message: "Esta é uma mensagem pública"
    }));

    // Enviando uma mensagem para um canal fechado
    socket.send(JSON.stringify({
        channel_id: channelId,
        message: "Mensagem privada para o canal"
    }));
};

socket.onmessage = function(event) {
    console.log("Mensagem recebida: ", JSON.parse(event.data));
};

socket.onclose = function(e) {
    console.log("Conexão encerrada");
};

socket.onerror = function(e) {
    console.log("Erro no WebSocket", e);
};
```

Como Funciona
-------------

[](#como-funciona)

### Canais Públicos

[](#canais-públicos)

Mensagens enviadas sem o campo `channel_id` são consideradas públicas e são transmitidas para todos os clientes conectados.

### Canais Fechados

[](#canais-fechados)

Mensagens contendo o campo `channel_id` são enviadas apenas para os clientes inscritos nesse canal.

### Exemplo de Envio de Mensagens

[](#exemplo-de-envio-de-mensagens)

1. **Mensagem pública**:

    ```
    socket.send(JSON.stringify({
        message: "Esta é uma mensagem pública"
    }));
    ```
2. **Mensagem para um canal fechado**:

    ```
    socket.send(JSON.stringify({
        channel_id: "unique_channel_id",
        message: "Mensagem privada para o canal"
    }));
    ```

Conclusão
---------

[](#conclusão)

Esta biblioteca oferece um servidor WebSocket simples e eficiente, suportando tanto a comunicação pública quanto privada via canais fechados, permitindo flexibilidade em aplicações de comunicação em tempo real.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance44

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

435d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3a9a2c6ef7cc13432c23f3ce062fc758976e3725b1a1d9e0b918777bdfdcd325?d=identicon)[ryan-junio-oliveira](/maintainers/ryan-junio-oliveira)

---

Top Contributors

[![ryan-junio-oliveira](https://avatars.githubusercontent.com/u/145233499?v=4)](https://github.com/ryan-junio-oliveira "ryan-junio-oliveira (4 commits)")

### Embed Badge

![Health badge](/badges/ryan-junio-oliveira-websocket-channels/health.svg)

```
[![Health](https://phpackages.com/badges/ryan-junio-oliveira-websocket-channels/health.svg)](https://phpackages.com/packages/ryan-junio-oliveira-websocket-channels)
```

###  Alternatives

[gos/web-socket-bundle

Symfony Web Socket Bundle

6202.2M8](/packages/gos-web-socket-bundle)[consik/yii2-websocket

Yii2 websocket server component

9275.9k2](/packages/consik-yii2-websocket)[takielias/codeigniter-websocket

CodeIgniter Websocket using Ratchet Websocket technology. Inspired by https://github.com/romainrg/ratchet\_client

609.1k](/packages/takielias-codeigniter-websocket)[joni-jones/yii2-wschat

Online chat based on web sockets and ratchet php

981.3k](/packages/joni-jones-yii2-wschat)[puko/framework

MVC Framework for quick and fast PHP application development.

1315.1k2](/packages/puko-framework)[lion/bundle

Lion-framework configuration and initialization package

122.2k1](/packages/lion-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
