bigbits Ответов: 0

Полученные данные Websocket и фрагмента (PHP)


does anyone know how to avoid WebSocket\ConnectionException from a receive_fragment error? I send a json through a websocket and added a while to receive the response, but it seems that I only get a fragment of it and throws a error afterwards.

{"protocol":"UNKNOWN"," ["class"]=> string(14) "WebSocket\Base" ["type"]=> string(2) "->" ["args"]=> array(1) { [0]=> int(2) } } [1]=> array(6) { ["file"]=> string(84) "textalk\stocks\vendor\textalk\websocket\lib\Base.php" ["line"]=> int(135) ["function"]=> string(16) "receive_fragment" ["class"]=> string(14) "WebSocket\Base" ["type"]=> string(2) "->" ["args"]=> array(0) { } } [2]=> array(6) { ["file"]=> string(61) "F:\xampp-php72\htdocs\testcodes\textalk\stocks\dailyorder.php" ["line"]=> int(51) ["function"]=> string(7) "receive" ["class"]=> string(14) "WebSocket\Base" ["type"]=> string(2) "->" ["args"]=> array(0) { } } } ["previous":"Exception":private]=> NULL } object(WebSocket\ConnectionException)#7 (7) {"Empty read; connection dead?

The Code :

$client->send( json_encode($dailyOrder) );

while (true) {

try {

    $dailyorder = json_decode( $client->receive() );

    var_dump($dailyorder);

   } catch (\WebSocket\ConnectionException $e) {

    var_dump($e);

}
If anyone has any idea it would really help!


Что я уже пробовал:

Я пытался увидеть ошибку, но это все, что я получил.

Richard MacCutchan

Сообщение говорит вам, что что-то нарушило соединение между вашим клиентом и сервером.

bigbits

правда, проблема в том, что мы не можем использовать javascript, например. Мы должны делать все это на php, поэтому, пока javascript работает на php, там чего-то не хватает.

Richard MacCutchan

Я не думаю что тебе стоит звонить json_decode по полученным фрагментам, так как декодер будет ожидать полного сообщения. Вы должны собрать все данные в строку, а затем вызвать json_decode о полном сообщении.

0 Ответов