如何通过 WebSocket 接口订阅实时外汇行情数据(PHP 示例)

步骤 1:准备工作

  • 确保已安装 PHP 和 Composer

  • 安装 WebSocket 客户端库:

    composer require textalk/websocket

步骤 2:编写代码订阅行情

以下是最简可运行的 PHP 示例,订阅 EUR/USD 的 1分钟K线数据:

复制代码
<?php

require 'vendor/autoload.php';
use WebSocket\Client;


// API KEY申请:www.infoway.io
$apiKey = 'yourApiKey';
$wsUrl = "wss://data.infoway.io/ws?business=forex&apikey=$apiKey";

// 初始化客户端
$client = new Client($wsUrl, ['timeout' => 60]);

// 构造订阅请求
$initMessage = [
    "code" => 10004,
    "trace" => uniqid(),
    "data" => [
        "arr" => [
            [
                "type" => 1,              // 1 分钟K线
                "codes" => "EURUSD"       // 支持多个货币对,例如 EURUSD,USDJPY
            ]
        ]
    ]
];

// 发送订阅请求
$client->send(json_encode($initMessage));

// 开始接收数据 + 维持连接
$startTime = time();
while (true) {
    try {
        // 每30秒发一次ping保活
        if (time() - $startTime >= 30) {
            $client->send(json_encode(["code" => 10010, "trace" => uniqid()]));
            $startTime = time();
        }

        // 接收推送数据
        $message = $client->receive();
        echo "Received: $message\n";

    } catch (Exception $e) {
        echo "Error: " . $e->getMessage() . "\n";
        break;
    }
}

说明

字段 含义
business=forex 订阅外汇业务数据
type=1 表示订阅 1 分钟 K线
codes 货币对,如 EURUSD、USDJPY、GBPUSD
code=10004 表示订阅请求
code=10010 保活心跳包(每30秒发送一次)

常见问题

Q:可以订阅多个货币对吗?

A:可以,多个代码用英文逗号分隔,如 "codes" => "EURUSD,USDJPY"

Q:是否支持其他K线周期?

A:支持,修改 "type" 的传入值可以获取不同周期的K线(请参考官方文档定义)。

Q:是否需要断线重连逻辑?

A:强烈建议生产环境加入重连机制和错误日志。

相关推荐
huainingning5 分钟前
RJ DHCPV6 无状态配置成功案例
网络·智能路由器
恒拓高科WorkPlus21 分钟前
从“可选项”到“必选项”——私有化部署即时通讯如何重塑企业协作新底座
大数据·网络·人工智能
码匠许师傅23 分钟前
【C++ 面试真题】聊聊 volatile 和 mutable
开发语言·c++·面试
(Charon)32 分钟前
【C++】线程安全队列(二):生产者消费者模型与 condition_variable 阻塞等待
c语言·开发语言·c++
liwulin050643 分钟前
【PYTHON】使用Selenium + ChromeDriver以及XPATH语法
开发语言·python·selenium
JavaPub-rodert1 小时前
我又把自己的 Go 后台管理系统升级了一遍:文件管理、2GB 上传、私有文件预览、Docker 镜像全安排上了
开发语言·docker·golang·shiyuadmin
动力 continue1 小时前
Python 元类与异常类:类的“制造工厂”与“报错定制师”
开发语言·python·制造
quantdash_cc1 小时前
基于 QuantDash 5 分钟 K 线的网格交易策略参数网格搜索寻优实战
android·开发语言·pandas·量化·quantdash
雪隐1 小时前
个人电脑玩AI-16让5060 Ti给你打工——MiniMax H3 提速实录:从"泡杯茶等视频"到"视频等你",一张 5060 Ti 的自我修养
前端·人工智能·后端
147API1 小时前
Python批量生成蒸馏数据,并发、重试、幂等和断点续跑
开发语言·jvm·python