ethancao/websocket
最新稳定版本:v1.0.0
Composer 安装命令:
composer require ethancao/websocket
包简介
A simple PHP WebSocket library.
README 文档
README
一个轻量级、简单易用的PHP WebSocket服务器库,支持基本的WebSocket通信功能。
功能特性
- 支持标准WebSocket协议
- 事件驱动架构(onOpen、onMessage、onClose事件)
- 支持单发消息和广播消息
- 自动心跳检测(ping/pong)
- 简单易用的API接口
系统要求
- PHP 7.4 或更高版本
- 需要启用PHP的stream_socket扩展(通常默认启用)
安装
使用Composer安装:
composer require ethancao/websocket
基本使用
以下是一个简单的WebSocket服务器示例:
<?php require 'vendor/autoload.php'; use Ethancao\WebSocket\WebSocketServer; // 创建WebSocket服务器实例,监听所有IP的8080端口 $server = new WebSocketServer('0.0.0.0', 8080); // 注册连接建立事件回调 $server->on('open', function($conn) { echo "新连接已建立\n"; // 可以在这里向新连接发送欢迎消息 }); // 注册消息接收事件回调 $server->on('message', function($conn, $msg) use ($server) { echo "收到消息: $msg\n"; // 向发送者回复消息 $server->send($conn, "你发送了: $msg"); // 广播消息给所有连接的客户端 $server->send(null, "广播: $msg"); }); // 注册连接关闭事件回调 $server->on('close', function($conn) { echo "连接已关闭\n"; }); // 启动服务器 $server->start();
将上面的代码保存为server.php,然后运行:
php server.php
服务器将开始监听WebSocket连接。
API 文档
WebSocketServer 类
构造函数
public function __construct(string $host = '0.0.0.0', int $port = 8080)
$host: 服务器绑定的主机地址,默认为'0.0.0.0'(所有网络接口)$port: 服务器监听的端口,默认为8080
on 方法
public function on(string $event, callable $callback): void
$event: 事件名称,可以是 'open', 'message', 'close'$callback: 事件处理函数
send 方法
public function send($conn = null, string $payload = '', int $opcode = 0x1): void
$conn: 连接资源(发送给特定客户端)或null(广播给所有客户端)$payload: 要发送的消息内容$opcode: WebSocket操作码,默认为0x1(文本帧)
start 方法
public function start(): void
启动WebSocket服务器,开始接受连接和处理消息。
客户端连接示例
使用JavaScript连接到WebSocket服务器:
const socket = new WebSocket('ws://localhost:8080'); socket.addEventListener('open', function (event) { console.log('已连接到服务器'); socket.send('Hello Server!'); }); socket.addEventListener('message', function (event) { console.log('收到服务器消息:', event.data); }); socket.addEventListener('close', function (event) { console.log('与服务器的连接已关闭'); }); socket.addEventListener('error', function (event) { console.error('连接错误:', event); });
高级用法
实现聊天服务器
可以基于此库实现一个简单的聊天服务器,允许多个客户端之间互相通信。
集成到现有项目
可以将此WebSocket服务器与现有的PHP应用程序集成,实现实时通信功能。
注意事项
- 此库是为学习和简单应用场景设计的,对于生产环境的高并发应用,建议使用Swoole、Workerman等更强大的异步框架
- 服务器在
start()方法中启动一个无限循环,会阻塞当前进程 - 如果需要在Web服务器环境中使用,请考虑使用PHP的cli模式运行
许可证
本项目采用MIT许可证 - 详情请查看 LICENSE 文件
贡献
欢迎提交Issue和Pull Request!
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-21