Rsa97, Спасибо. Это понятно что в цикле выводится. Я имел в виду.
let login1 = marikas; let cash1 = 12345; // его логин и его cash
let login2 = tym; let cash2 = 6789; // его логин и его cash
Спасибо. Как вывести сразу все три логина в этом запросе? Я так понимаю , второй вариант лучше? Стоит ли в таком варианте использовать асинхронный запрос. Я только перехожу на js.
ну так у меня к примеру 1000+ пользователей. что. каждый раз подключаться для каждого пользователя?
на php я делал mysql_fetch_array один раз подключаемся
выводим
данные логина
данные логина
и т.д
$client = new WebSocket\Client("wss://stream.binance.com:9443/stream?streams=xrpusdt@bookTicker/bnbusdt@bookTicker");
///и задаю переменную $json_str
$json_str = $client->receive(); //строка в которой ищем
IvanU7n, Респект. Так работает. Только иногда выдает
TEST----- java ---TEST---------->: 0.62510000
TEST----- java ---TEST---------->: 0
То есть там если не меняется значение, то сокет не обновляет результат. Не подскажете как сохранить просто старое значение если от сокета не передается значение?
IvanU7n,
Нужно найти в строках значения по симаолам
Идут строки
{"stream":"xrpusdt@bookTicker","data":{"u":10936805954,"s":"XRPUSDT","b":"0.64420000","B":"3076.00000000","a":"0.64440000","A":"6180.00000000"}}
{"stream":"xrpusdt@bookTicker","data":{"u":10936805954,"s":"BNBUSDT","b":"0.64420000","B":"3076.00000000","a":"0.64440000","A":"6180.00000000"}}
и так далее
Я ищу значение b для символа XRPUSDT и так далее. В итоге хочу получить $XRPUSDT = 0.64420000 $BNBUSDT= 0.34560000 и так далее . Для записи значений в бд
Вот что получаю.
array(0) { }
Просто какой то кубик рубик.))
Пробую другими вариантами, опять же либо null , либо N;
либо O:7:"Message":1:{s:8:"messages";a:0:{}}
Да. Сообщения выводятся. Как это переписать? У меня --> spot.php
public function miniTicker($callback, $symbol=null)
{
if ($symbol) {
$url = "{$this->baseURL}/ws/". strtolower($symbol) . "@miniTicker";
} else {
$url = "{$this->baseURL}/ws/!miniTicker@arr";
}
$this->handleCallBack($url, $callback);
}
И сам handleCallBack в вебсокетах websocket.php
protected function handleCallBack($url, $callback)
{
if (is_array($callback)) {
foreach ($callback as $event => $func) {
if (gettype($event) == "integer") {
throw new InvalidArgumentException("callback", json_decode($callback), "Array has event type as key, e.g. ['message' => function() {}]", "Please find example at https://github.com/binance/binance-connector-php");
}
}
}
$this->createWSConnection($url)->then(function ($conn) use ($callback) {
$this->wsConnection = $conn;
if (is_callable($callback)) {
$conn->on('message', function ($msg) use ($conn, $callback) {
$callback($conn, $msg);
});
}
if (is_array($callback)) {
foreach ($callback as $event => $func) {
$event = strtolower(strval($event));
if (in_array($event, ['message', 'ping', 'pong', 'close'])) {
$conn->on($event, function ($msg) use ($conn, $func) {
call_user_func($func, $conn, $msg);
});
}
}
}
}, function ($e) {
$this->logger->error("Could not connect: {$e->getMessage()}".PHP_EOL);
});
}
Я пытаюсь записывать данные в файл
'message' => function ($conn, $msg) { // далее запишу $msg
записываю с помощью file_put_contents
но не файл не добавляется, не данные