1
即時通訊使用reactphp庫,並且正在使用發送不同大小包的設備。我的問題是當我得到的數據Reactphp無法獲取流中的全部數據
$stream->on('data', function ($data, React\Stream\ReadableStreamInterface $stream) {
$this->respuesta .= $data;
$stream->close();
});
我只得到第一個包的一部分。有沒有辦法一直等到設備發送所有數據?
在這裏,wireshark capture最後一個包是我無法得到的反應。
$loop = React\EventLoop\Factory::create();
$dnsResolverFactory = new React\Dns\Resolver\Factory();
$dns = $dnsResolverFactory->createCached('8.8.8.8', $loop);
$connector = new React\SocketClient\Connector($loop, $dns);
$connector->create($this->host, $this->port)->then(function (React\Stream\Stream $stream) use ($hex) {
$stream->write($hex);
$stream->on('data', function ($data, React\Stream\ReadableStreamInterface $stream) {
$this->respuesta .= $data;
$stream->close();
});
});
$loop->run();
我用計時器改變了解決方案,但一些軟件包的響應時間很長,所以我正在檢查im reciving軟件包的大小,並將其與我應該收回的大小進行比較。謝謝 –