Plz check this code its getting all value 0..plz correct

<?php require_once 'vendor/autoload.php'; use function Amp\Websocket\Client\connect; use Com\Upstox\Marketdatafeederv3udapi\Rpc\Proto\FeedResponse; function decodeProtobuf($buffer) { $feedResponse = new FeedResponse(); if (!empty($buffer)) { $feedResponse->mergeFromString($buffer); } return $feedResponse; } function getMarketDataFeedAuthorize() { $accessToken = '********************'; $url = 'https://api.upstox.com/v3/feed/market-data-feed/authorize'; $headers = [ 'Accept: application/json', 'Authorization: Bearer ' . $accessToken ]; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true); return $data['data']['authorized_redirect_uri'] ?? null; } function fetchMarketUpdates() { $url = getMarketDataFeedAuthorize(); if (!$url) die("❌ Authorization failed\n"); echo "🔗 Connecting to WebSocket...\n"; $connection = connect($url); echo "✅ Connected! Subscribing...\n"; $payload = [ "guid" => uniqid(), "method" => "sub", "data" => [ "mode" => "ltpc", "instrumentKeys" => [ "BSE_INDEX|SENSEX", "NSE_INDEX|Nifty 50", "NSE_INDEX|NIFTY MIDCAP 100" ] ] ]; $connection->sendBinary(json_encode($payload)); // Keep listening until we get non-zero LTP foreach ($connection as $message) { $payload = $message->buffer(); if (!empty($payload)) { $decoded = decodeProtobuf($payload); $dataArray = json_decode($decoded->serializeToJsonString(), true); $feeds = $dataArray['feeds'] ?? []; if (!empty($feeds)) { $ltpBSE = $feeds['BSE_INDEX|SENSEX']['ltp'] ?? 0; $ltpNifty50 = $feeds['NSE_INDEX|Nifty 50']['ltp'] ?? 0; $ltpNiftyMidcap = $feeds['NSE_INDEX|NIFTY MIDCAP 100']['ltp'] ?? 0; if ($ltpBSE > 0 && $ltpNifty50 > 0 && $ltpNiftyMidcap > 0) { $result = [ "BSE SENSEX" => [ "ltp" => $ltpBSE, "plusminusval" => $ltpBSE - ($feeds['BSE_INDEX|SENSEX']['close'] ?? 0), "percentage" => ($feeds['BSE_INDEX|SENSEX']['close'] ?? 1) != 0 ? round(($ltpBSE - $feeds['BSE_INDEX|SENSEX']['close']) / $feeds['BSE_INDEX|SENSEX']['close'] * 100, 2) : 0 ], "Nifty 50" => [ "ltp" => $ltpNifty50, "plusminusval" => $ltpNifty50 - ($feeds['NSE_INDEX|Nifty 50']['close'] ?? 0), "percentage" => ($feeds['NSE_INDEX|Nifty 50']['close'] ?? 1) != 0 ? round(($ltpNifty50 - $feeds['NSE_INDEX|Nifty 50']['close']) / $feeds['NSE_INDEX|Nifty 50']['close'] * 100, 2) : 0 ], "Nifty Midcap 100" => [ "ltp" => $ltpNiftyMidcap, "plusminusval" => $ltpNiftyMidcap - ($feeds['NSE_INDEX|NIFTY MIDCAP 100']['close'] ?? 0), "percentage" => ($feeds['NSE_INDEX|NIFTY MIDCAP 100']['close'] ?? 1) != 0 ? round(($ltpNiftyMidcap - $feeds['NSE_INDEX|NIFTY MIDCAP 100']['close']) / $feeds['NSE_INDEX|NIFTY MIDCAP 100']['close'] * 100, 2) : 0 ] ]; echo json_encode(['code' => 1, 'data' => $result], JSON_PRETTY_PRINT); $connection->close(); break; } } } } } fetchMarketUpdates();