如何使用PHP监听Binance WebSocket接口获取加密货币实时价格
PHP实现Binance WebSocket实时价格获取方案
PHP原生未内置WebSocket客户端支持,我们可以通过第三方textalk/websocket库实现和你提供的JS代码完全一致的功能,具体步骤如下:
1. 安装依赖
首先通过Composer安装WebSocket客户端库:
composer require textalk/websocket
2. 功能实现代码
<?php require __DIR__ . '/vendor/autoload.php'; use WebSocket\Client; // 连接Binance WebSocket接口,和你JS代码的地址完全一致 $client = new Client("wss://stream.binance.com:9443/ws/btcusdt@ticker"); // 循环监听消息推送 while (true) { try { // 接收消息 $message = $client->receive(); // 解析JSON,对应JS里的JSON.parse $data = json_decode($message, true); // 输出数据,对应JS里的console.log print_r($data); } catch (Exception $e) { echo "连接错误:" . $e->getMessage() . PHP_EOL; // 出错后关闭连接 $client->close(); break; } }
注意事项
- 该脚本需要在CLI命令行模式下运行,Web请求的超时限制无法维持WebSocket长连接
- 你可以根据需求修改连接地址中的交易对(如将
btcusdt替换为ethusdt)或订阅频道,规则和Binance官方公开的WebSocket接口规则完全一致 - 如果只需要获取单次数据,可以在拿到
$data后添加break退出循环即可
内容的提问来源于stack exchange,提问作者idrisyagci
相关产品推荐
相关产品推荐

