Javascript SSE与刷新js命令?

Javascript SSE与刷新js命令?,javascript,signalr,server-sent-events,Javascript,Signalr,Server Sent Events,signalR的一个回退是SSE-服务器发送的事件。它所做的只是通过以下结构发送消息: 消息\n\n 因此,在服务器端: Response.ContentType = "text/event-stream"; while (startDate.AddMinutes(1) > DateTime.Now) { Response.Write(string.Format("data: {0}\n\n", DateTime.Now.ToString())); Response.Fl

signalR的一个回退是SSE-服务器发送的事件。它所做的只是通过以下结构发送消息:

消息\n\n

因此,在服务器端:

Response.ContentType = "text/event-stream";

while (startDate.AddMinutes(1) > DateTime.Now)
{
    Response.Write(string.Format("data: {0}\n\n", DateTime.Now.ToString()));
    Response.Flush();

    System.Threading.Thread.Sleep(1000);
}
太好了

但不太好

我可以很容易地使用JS命令处理数据(就像jsonp使用回调对象类比填充一样),例如: _
cb(myMessage)

在客户端,同样地处理它(即使使用更受欢迎的mime类型,如application/javascript)

我可能遗漏了什么

  • 苏格兰和南方能源公司的优势是什么
与JSONP/long轮询相比,JSONP/long轮询的最大优点是,您可以在收到SSE响应块后立即读取该响应块,而无需完成响应


您可以使用分块响应发回JSONP负载,但是
请参见。基本上,它只允许客户端执行单个请求,服务器将通过该通道推送额外的信息。您的备选方案将要求客户端发出多个请求。@FrédéricHamidi为什么要发出多个请求?客户端发出一个请求,而服务器并没有实现这个请求,它所做的只是注入刷新的Js命令。我不认为JSONP(例如)可以保持连接并提供多个有效负载:每个请求只有一个响应。@FrédéricHamidi我说的和JSONP一样,实际上是
MyJsCallback({json})
。。。。没有谈到体系结构,但是用回调对象类比填充了。编辑澄清。我很困惑——苏格兰和南方能源公司的优势到底是什么?您打算如何实现命令的“刷新”?很难将具体的东西与抽象的想法相比较。
<!DOCTYPE html><html><head><title>SignalR Forever Frame Transport Stream</title>
<script>
    var $ = window.parent.jQuery,
        ff = $ ? $.signalR.transports.foreverFrame : null,
        c =  ff ? ff.getConnection('1') : null,
        r = ff ? ff.receive : function() {};
        ff ? ff.started(c) : '';</script></head><body>