Maison > Questions et réponses > le corps du texte
请教各位大神,php kafka consume端如何取消息。
读取方法:
$readable = @stream_select($read, $null, $null, $this->recvTimeoutSec, $this->recvTimeoutUsec);
if ($readable > 0) {
$remainingBytes = $len;
$data = $chunk = '';
while ($remainingBytes > 0) {
$chunk = fread($this->stream, $remainingBytes);
if ($chunk === false) {
$this->close();
throw new Kafka_Exception_Socket_EOF('Could not read '.$len.' bytes from stream (no data)');
}
if (strlen($chunk) === 0) {
// Zero bytes because of EOF?
if (feof($this->stream)) {
$this->close();
throw new Kafka_Exception_Socket_EOF('Unexpected EOF while reading '.$len.' bytes from stream (no data)');
}
// Otherwise wait for bytes
$readable = @stream_select($read, $null, $null, $this->recvTimeoutSec, $this->recvTimeoutUsec);
if ($readable !== 1) {
throw new Kafka_Exception_Socket_Timeout('Timed out reading socket while reading ' . $len . ' bytes with ' . $remainingBytes . ' bytes to go');
}
continue; // attempt another read
}
$data .= $chunk;
$remainingBytes -= strlen($chunk);
}
if ($len === $remainingBytes || ($verifyExactLength && $len !== strlen($data))) {
// couldn't read anything at all OR reached EOF sooner than expected
$this->close();
throw new Kafka_Exception_Socket_EOF('Read ' . strlen($data) . ' bytes instead of the requested ' . $len . ' bytes');
}
抛出异常:Kafka_Exception_Socket_EOF: Unexpected EOF while reading 4 bytes from stream (no data) #0
请教各位大神,如何解决。不胜感激。