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客户端。

 $ 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客户端

 $ 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服务器

 $ 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