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.