Websocket客户端和服务器
该库包含用于PHP的Websocket客户端和服务器。
客户端和服务器提供了用于读取和写入WebSocket流的方法。
此存储库取代了废弃的textalk/websocket Repo,并由SörenJensen维护,SörenJensen自v1.3以来一直在维护原件。
一些功能
- 客户端和多连接服务器
ws(TCP)和wss(SSL)支持- 听众回调传入消息和其他事件
- 关闭和PING/PONG处理(标准中间Wares)
- 放气压缩(中间件)
- 其他可选的中间Wares和创建自己的中间地点的能力
- 支持消息碎片和有效载荷掩蔽
文档
- 文档
- 客户端 - Websocket客户端
- 服务器 - Websocket服务器
- ChangElog-此存储库的更改
- 贡献 - 贡献者和要求
- 示例 - 示例
- V2-> V3-如何从V2迁移到V3
安装
首选安装方法是与作曲家一起使用。
composer require phrity/websocket
客户
客户端可以在WebSocket流上读写。它在内部支持升级握手以及隐式关闭和乒乓球操作。
为请求/响应策略设置Websocket客户端。
addMiddleware(new WebSocketMiddlewareCloseHandler())
->addMiddleware(new WebSocketMiddlewarePingResponder())
;
// Send a message
$client->text("Hello WebSocket.org!");
// Read response (this is blocking)
$message = $client->receive();
echo "Got message: {$message->getContent()} n";
// Close connection
$client->close();">
$ client = new WebSocket Client ( " wss://echo.websocket.org/ " ); $ client // Add standard middlewares -> addMiddleware ( new WebSocket Middleware CloseHandler ()) -> addMiddleware ( new WebSocket Middleware PingResponder ()) ; // Send a message $ client -> text ( " Hello WebSocket.org! " ); // Read response (this is blocking) $ message = $ client -> receive (); echo " Got message: { $ message -> getContent ()} n" ; // Close connection $ client -> close ();
为连续订阅设置Websocket客户端
addMiddleware(new WebSocketMiddlewareCloseHandler())
->addMiddleware(new WebSocketMiddlewarePingResponder())
// Listen to incoming Text messages
->onText(function (WebSocketClient $client, WebSocketConnection $connection, WebSocketMessageMessage $message) {
// Act on incoming message
echo "Got message: {$message->getContent()} n";
// Possibly respond to server
$client->text("I got your your message");
})
->start();">
$ client = new WebSocket Client ( " wss://echo.websocket.org/ " ); $ client // Add standard middlewares -> addMiddleware ( new WebSocket Middleware CloseHandler ()) -> addMiddleware ( new WebSocket Middleware PingResponder ()) // Listen to incoming Text messages -> onText ( function ( WebSocket Client $ client , WebSocket Connection $ connection , WebSocket Message Message $ message ) { // Act on incoming message echo " Got message: { $ message -> getContent ()} n" ; // Possibly respond to server $ client -> text ( " I got your your message " ); }) -> start ();
服务器
该服务器是多连接,侦听服务器。它在内部支持升级握手以及隐式关闭和乒乓球操作。
设置一个用于连续侦听的WebSocket服务器
getContent()} n";
// Possibly respond to client
$connection->text("I got your your message");
})
->start();">
$ server = new WebSocket Server (); $ server // Add standard middlewares -> addMiddleware ( new WebSocket Middleware CloseHandler ()) -> addMiddleware ( new WebSocket Middleware PingResponder ()) // Listen to incoming Text messages -> onText ( function ( WebSocket Server $ server , WebSocket Connection $ connection , WebSocket Message Message $ message ) { // Act on incoming message echo " Got message: { $ message -> getContent ()} n" ; // Possibly respond to client $ connection -> text ( " I got your your message " ); }) -> start ();
执照
ISC许可证
下载源码
通过命令行克隆项目:
git clone https://github.com/sirn-se/websocket-php.git