HTTP協(xié)議下,一個請求,較慢,大約10秒。在未結(jié)束時另一個請求來了,訪問同一個文件。這個時候會出現(xiàn)Cannot redeclare class錯誤。
WORKER EXIT UNEXPECTED E_COMPILE_ERROR Cannot redeclare class Test in /private/var/www/workerman-chat/Applications/Chat/Web/login.php on line 3
worker exit with status 65280
可以利用自動加載機制避免這個問題。
或者用require_once加載你的類文件。
WebServer.php:
ob_start();
// Try to include php file.
try
{
// $_SERVER.
$_SERVER['REMOTE_ADDR'] = $connection->getRemoteIp();
$_SERVER['REMOTE_PORT'] = $connection->getRemotePort();
include $workerman_file;
}
catch(\Exception $e)
{
// Jump_exit?
if($e->getMessage() != 'jump_exit')
{
echo $e;
}
}
$content = ob_get_clean();
ini_set('display_errors', 'on');
$connection->close($content);
在這里。
訪問localhost:55151/test.php的時候,第一個請求要10秒,再開第二個第三個,就會報錯了。
http://doc3.workerman.net/advanced/webserver.html
如果要用workerman的webserver,先看看手冊。
workerman是常住內(nèi)存的,類不能重復(fù)加載。
開發(fā)http服務(wù)建議用nginx apache。workerman的目標(biāo)是非http協(xié)議的應(yīng)用。