websocket php

其他类别 2025-08-19

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