kislayphp/socket
最新稳定版本:0.0.1
Composer 安装命令:
pie install kislayphp/socket
包简介
High-performance C++ PHP extension providing realtime socket transport for long-running PHP services
关键字:
README 文档
README
Kislay Socket is the realtime socket transport package for KislayPHP. It provides long-running socket communication with Engine.IO polling, WebSocket upgrade support, rooms, namespaces, and event callbacks.
During 0.0.x, the package keeps compatibility aliases for existing EventBus namespaces:
Kislay\\Socket\\*is the primary APIKislay\\EventBus\\*andKislayPHP\\EventBus\\*remain available as compatibility aliases
Versioning
This package stays on the 0.0.x line until the transport surface, docs, and ecosystem integration are production-ready.
Installation
PIE
pie install kislayphp/socket:0.0.1
Add to php.ini:
extension=kislayphp_socket.so
Build from source
git clone https://github.com/KislayPHP/socket.git
cd socket
phpize
./configure --enable-kislayphp_socket
make
sudo make install
Minimal Server
<?php $server = new Kislay\Socket\Server(); $server->on('connection', function (Kislay\Socket\Socket $socket) { $socket->join('lobby'); $socket->reply('welcome', ['id' => $socket->id()]); }); $server->on('chat', function (Kislay\Socket\Socket $socket, array $payload) { $socket->emitTo('lobby', 'chat', [ 'from' => $socket->id(), 'message' => $payload['message'] ?? '', ]); }); $server->listen('0.0.0.0', 3000, '/socket.io/');
Public API
Kislay\\Socket\\Server
on(string $event, callable $handler): boolemit(string $event, mixed $data): boolemitTo(string $room, string $event, mixed $data): boollisten(string $host, int $port, string $path): boolclientCount(): introomCount(string $room): intonAuth(callable $handler): boolonWithAck(string $event, callable $handler): boolgetClients(): arraysetMaxPayload(int $bytes): boolnamespace(string $ns): Kislay\\Socket\\Namespace
Kislay\\Socket\\Socket
id(): stringjoin(string $room): boolleave(string $room): boolemit(string $event, mixed $data): boolreply(string $event, mixed $data): boolemitTo(string $room, string $event, mixed $data): bool
Behavior notes:
Server::emit()broadcasts to all connected clients.Socket::emit()sends only to the current client.Socket::reply()is an alias for per-client emit.listen()blocks until the server stops.
Configuration
Primary environment variables:
KISLAYPHP_SOCKET_PING_INTERVAL_MSKISLAYPHP_SOCKET_PING_TIMEOUT_MSKISLAYPHP_SOCKET_MAX_PAYLOADKISLAYPHP_SOCKET_CORSKISLAYPHP_SOCKET_ALLOW_UPGRADEKISLAYPHP_SOCKET_TRANSPORTSKISLAYPHP_SOCKET_AUTH_ENABLEDKISLAYPHP_SOCKET_AUTH_TOKENKISLAYPHP_SOCKET_AUTH_QUERY_KEYSKISLAYPHP_SOCKET_AUTH_HEADER_KEYS
Legacy KISLAYPHP_EVENTBUS_* and KISLAYPHP_AUTH_* environment variables are still accepted during 0.0.x for migration compatibility.
Current Limits
- in-process single server runtime
- no durable message history
- no multi-node transport bridge in this package yet
- at this stage, treat it as the socket transport layer, not as a durable event platform
Positioning
Use kislayphp/socket for:
- realtime browser or service socket connections
- rooms and namespaces
- request/response style live events
- transport-level event delivery
Use kislayphp/queue for:
- background jobs
- retries and DLQ
- worker/server queue processing
Use future higher-level EventBus semantics only for distributed event distribution, not for the socket transport package itself.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2026-03-16