ryan-junio-oliveira/websocket-channels
Composer 安装命令:
composer require ryan-junio-oliveira/websocket-channels
包简介
Biblioteca PHP para servidor WebSocket com suporte a canais públicos e fechados usando Ratchet
README 文档
README
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
Pré-requisitos
- PHP 8.2 ou superior
- Composer (para instalação da biblioteca)
Passos de Instalação
-
Instale a biblioteca via Composer:
composer require ryan-junio-oliveira/websocket-channels
-
Após a instalação, crie um arquivo
websocket-server.phpe inicialize o servidor conforme o código de exemplo abaixo.
Exemplo de Uso
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
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
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
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
Mensagens contendo o campo channel_id são enviadas apenas para os clientes inscritos nesse canal.
Exemplo de Envio de Mensagens
-
Mensagem pública:
socket.send(JSON.stringify({ message: "Esta é uma mensagem pública" }));
-
Mensagem para um canal fechado:
socket.send(JSON.stringify({ channel_id: "unique_channel_id", message: "Mensagem privada para o canal" }));
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.
ryan-junio-oliveira/websocket-channels 适用场景与选型建议
ryan-junio-oliveira/websocket-channels 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 03 月 02 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 ryan-junio-oliveira/websocket-channels 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ryan-junio-oliveira/websocket-channels 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 19
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-02