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