in provider/fsof/FSOFProtocol.php [89:134]
public function checkBuffer($client_id, $data)
{
//检测头
$request = $this->checkHeader($client_id, $data);
//错误的http头
if ($request === false)
{
if (empty($this->buffer_header[$client_id]))
{
$this->logger->error("fsof header err.");
return self::STATUS_ERROR;
}
else
{
$this->logger->debug("wait head data. fd={$client_id}");
return self::STATUS_WAIT;
}
}
if ($request->getRequestLen() <= strlen($request->getFullData()))
{
if($this->parser->isHearBeatRequest($request))
{
//心跳机制
return self::STATUS_FINISH;
}
else
{
if ($this->parser->parseRequestBody($request))
{
$this->logger->debug("parse request ok!");
return self::STATUS_FINISH;
}
else
{
$this->logger->error("fsof body err.");
return self::STATUS_ERROR;
}
}
}
else
{
$this->logger->debug("wait body data. fd={$client_id}");
return self::STATUS_WAIT;
}
}