我在一个项目中使用 Perl Dancer,我想实现 SSE http://www.html5rocks.com/en/tutorials/eventsource/basics/#toc-introduction-differences
我有一条舞者路线,我正在努力保持活力
get '/stream' => sub{
my $response = Dancer::SharedData->response;
debug($response->exists);
$response->status(200);
$response->content("data: cool test\n\n");
$response->content_type( 'text/event-stream' );
$response->header( 'Cache-Control' => 'no-cache' );
$response->header( 'Connection' => 'Keep-Alive' );
$response->pass;
return undef;
};
似乎从舞者路线返回任何东西都会关闭连接。理想情况下,我想保持打开状态并存储$response
以将更多数据推送到以后。
更新:在进一步的研究中,舞者使用的 PSGI 应该可以做到这一点: http ://search.cpan.org/~miyagawa/PSGI-1.03/PSGI.pod#Delayed_Reponse_and_Streaming_Body 目前正在研究 一种中间件方法。