在HTML5 SSE和直接Ajax轮询之间,性能,浏览器实现可用性,服务器负载等方面有很大的不同吗? 从服务器端来看,似乎一个EventSource只是每隔3秒钟左右敲击指定的页面(尽pipe我明白时间是灵活的)。 当然,在客户端设置比设置一个定时器更简单,并且每$.get就要$.get ,但是还有其他的东西吗? 它是否发送更less的标题,或者做一些其他的魔法我失踪?
所有, HTML5 Rocks在服务器发送的事件(SSE)上有一个很好的初学者教程: http://www.html5rocks.com/en/tutorials/eventsource/basics/ 但是,我不明白一个重要的概念 – 什么触发了服务器上导致消息发送的事件? 换句话说 – 在HTML5的例子中 – 服务器只发送一次时间戳: <?php header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); // recommended to prevent caching of event data. function sendMsg($id, $msg) { echo "id: $id" . PHP_EOL; echo "data: $msg" . PHP_EOL; echo PHP_EOL; ob_flush(); flush(); } $serverTime = time(); sendMsg($serverTime, 'server time: ' . date("h:i:s", time())); 如果我正在构build一个实际的例子 […]
我曾尝试阅读一些文章,但是我对这些概念还不是很清楚。 会有人喜欢向我解释这些技术是什么: 长轮询 服务器发送的事件 的WebSockets 彗星 我每次遇到的一件事是,服务器保持连接打开并将数据推送到客户端。 连接如何保持开放,客户如何获得推送的数据? (客户如何使用这些数据,也许有些代码可能有帮助?) 现在,我们应该使用哪一个实时应用程序。 我一直听到很多有关websockets(与socket.io [一个node.js库]),但为什么不是PHP?