我想使用使用workerman实现服务器端推送,请问支持html5 的server send event吗?
我发现这么写似乎无效,求解答?
<?php
use Workerman\Worker;
use Workerman\Protocols\Http;
use Workerman\Protocols\HttpCache;
require_once __DIR__ . '/Workerman/Autoloader.php';
session_save_path('L:/worker/session/');
// 创建一个Worker监听2345端口,使用http协议通讯
$http_worker = new Worker("http://0.0.0.0:2345");
// 启动4个进程对外提供服务
$http_worker->count = 4;
// 接收到浏览器发送的数据时回复hello world给浏览器
$http_worker->onMessage = function($connection, $data)
{
if($_SERVER=='/sse.php'){
Http::header('Content-Type: text/event-stream');
Http::header('Cache-Control: no-cache');
while(true){
$time=time();
$res="data: The server time is: {$time}\n\n";
$connection->send($res);
sleep(1);
}
return ;
}
if($_SERVER=='/34.html'){
//设置cookie
// Http::setcookie('a','123123');
$path= __DIR__ ;
$res=file_get_contents($path.'/static/34.html');
$connection->send($res);
return ;
}
// Http::sessionStart(); //启动session ,以后就可以使用session了
};
// 运行worker
Worker::runAll();
sse 是个什么鬼?
server send event