Grails 中的 HTML5 SSE
Posted
技术标签:
【中文标题】Grails 中的 HTML5 SSE【英文标题】:HTML5 SSE In Grails 【发布时间】:2016-01-04 10:40:45 【问题描述】:我试图在 grails 应用程序中使用 html5 SSE。以下是实际的示例代码:
def push()
println "Inside action..."
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
render("data: $System.currentTimeMillis()");
客户端代码:
<script type="text/javascript">
if(typeof(EventSource) !== "undefined")
var source = new EventSource("push");
source.onmessage = function(event)
console.debug("event triggered...");
document.getElementById("result").innerHTML += event.data + "<br>";
;
source.onerror = function(event)
console.log(event.message);
else
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
</script>
但是 onmessage 事件没有被触发。 onerror 被触发并打印 undefined。它会执行正确的操作,但不会流式传输数据。
我也试过了:
response.outputStream.write(...........)
response.outputStream.flush()
但不起作用。
请提出建议。
【问题讨论】:
【参考方案1】:好吧,我解决了。我用过:
PrintWriter writer = response.getWriter();
writer.write("data:"+System.currentTimeMillis()+"\n\n")
它成功了。
【讨论】:
您好 Vivek,您是如何设法刷新数据并避免在控制器/操作完成后关闭连接的?以上是关于Grails 中的 HTML5 SSE的主要内容,如果未能解决你的问题,请参考以下文章