WebSocket на PHP получение данных Forex, CFD и Crypto

Рассмотрим как настроить WebSocket в PHP и получить рыночные данные в реальном времени. Мы будем использовать простой редактор и управление пакетами Composer, чтобы упростить процесс получения необходимых программ.

Пожалуйста, зарегистрируйтесь бесплатно, чтобы получить доступ к данным Forex, CFD и Crypto в реальном времени. TraderMade предлагает 1000 бесплатных запросов каждый месяц. Кроме того, вы можете самостоятельно начать 14-дневную пробную версию WebSocket Trial после входа в систему.

Настройка среды.

Чтобы определить, доступен ли уже PHP, откройте командное окно и введите «php.exe -version»; если будет получен номер версии, можно переходить к кодированию; в противном случае необходимо установить PHP. Кроме того, вам потребуется API-ключ для сервиса данных FX. Зарегистрируйтесь бесплатно, получите свой потоковый API-ключ и начните 14-дневную пробную версию WebSocket с панели пользователя. В противном случае воспользуйтесь готовым примером кода с нашей страницы документации по данным.

Настройка PHP

Для установки PHP достаточно выполнить три простых шага.

  • Скачайте файл сборки php.exe с сайта PHP и распакуйте его в новую директорию.
  • Обновите classpath или «Переменные окружения», чтобы отразить местоположение PHP.exe.
  • В результате выполнения следующей команды, которую вы можете использовать для проверки своей установки, вы увидите номер версии установленного PHP.
//for windows
php.exe -version
// for linux
php -version

ожидаемый результат.

PHP 7.2.24-0ubuntu0.18.04.13 (cli) (built: Jul  6 2022 12:23:22) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.13, Copyright (c) 1999-2018, by Zend Technologies

Выполните настройки директории проекта

Давайте начнем с создания каталога для нашего исходного кода и зависимостей. Хотя я дал этой директории имя WebScoketClientPHP, вы можете дать ей любое имя по своему усмотрению.

Следующим шагом будет установка менеджера пакетов Composer. Как только это будет подтверждено, мы сможем загрузить необходимый нам пакет. Выполните следующую команду в директории, которую вы создали на предыдущем шаге.

composer require textalk/websocket

Создайте новый файл под названием WebSocketClient.php в каталоге исходных текстов и откройте его в удобной для вас среде разработки текстового редактора.

Сначала мы добавим необходимые утверждения и PHP-теги, прежде чем импортировать наши пакеты из Composer.

require_once(«vendor/autoload.php»);

Как показано ниже, мы можем создать новый WebSocket, указав URL-адрес службы WebSocket. Мы можем присвоить этот новый WebSocket клиентской переменной.

$client = new WebSocketClient("wss://marketdata.tradermade.com/feedadv");

Мы должны дождаться, пока WebSocket выдаст сообщение «connected» на сервер, прежде чем отправлять наш ответ на вход в систему с ключом API.

$message =  $client->receive();
echo $message;
$client->text("{"userKey":"YOUR_API_KEY", "symbol":"GBPUSD,EURUSD"}");

После того как мы установили соединение и передали строку подключения, мы сразу же запустим цикл для постоянной проверки обновлений данных о ценах на рынке Форекс.

while(true){
   $message =  $client->receive();
   echo " Data ", $message, "
";
}

Мы можем запустить скрипт и просмотреть результаты.

php WebSocketClient.php

Вуаля! Прямо сейчас вы можете увидеть потоковое движение курсов валют.

Data {"symbol":"GBPUSD","ts":"1651244018768","bid":1.25486,"ask":1.25486,"mid":1.25486}
Data {"symbol":"GBPUSD","ts":"1651244018790","bid":1.25486,"ask":1.25488,"mid":1.2548699}
Data {"symbol":"GBPUSD","ts":"1651244018791","bid":1.25482,"ask":1.25488,"mid":1.2548499}
Data {"symbol":"GBPUSD","ts":"1651244018796","bid":1.25487,"ask":1.25488,"mid":1.254875}
Data {"symbol":"GBPUSD","ts":"1651244018815","bid":1.25485,"ask":1.25488,"mid":1.2548649}
Data {"symbol":"GBPUSD","ts":"1651244018816","bid":1.25485,"ask":1.25486,"mid":1.254855}
Data {"symbol":"GBPUSD","ts":"1651244018842","bid":1.25485,"ask":1.25487,"mid":1.25486}
Data {"symbol":"GBPUSD","ts":"1651244018866","bid":1.25485,"ask":1.25486,"mid":1.254855}
Data {"symbol":"GBPUSD","ts":"1651244018868","bid":1.25484,"ask":1.25486,"mid":1.25485}

Теперь, когда у нас есть данные, мы можем подумать об их обработке в пригодный для использования формат. Сначала мы должны определить, являются ли полученные данные элементом данных или «подключенным» сообщением. Затем мы можем выделить элементы из данных путем их синтаксического анализа.

if(strcmp($message,"connected") !== 0){
        $decoded_json = json_decode($message);
        echo $decoded_json->symbol, $decode-json->ts, $decode_jdon->bid, $decode__json->ask, "
";
}

Вы можете просматривать курсы валют, отображаемые в режиме реального времени.

EURUSD 1651244529366 1.05515 1.05517
GBPUSD 1651244529371 1.2554 1.2554
GBPUSD 1651244529385 1.2554 1.25541
EURUSD 1651244529389 1.05515 1.05516
EURUSD 1651244529416 1.05518 1.05519
GBPUSD 1651244529455 1.25542 1.25543
GBPUSD 1651244529458 1.25542 1.25546
GBPUSD 1651244529492 1.2554 1.25546
GBPUSD 1651244529496 1.2554 1.25545

Вот и все, теперь ваш WebSocket должен работать. Если у вас возникнут какие-либо проблемы, не стесняйтесь обращаться к нам через страницу контактов.

TraderMade предоставляет надежные и точные данные Forex через Forex API. Вы можете подписаться на бесплатный API-ключ и начать изучать данные в реальном времени.

Также, пожалуйста, ознакомьтесь с первоначально опубликованным на сайте TraderMade руководством по PHP WebSocket Client.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии