ASP.NET:通过延迟

时间:2015-08-30 13:26:21

标签: c# asp.net server-sent-events

我使用ASP.NET中的PushStreamContent类来实现SSE服务器。

 public HttpResponseMessage Get(HttpRequestMessage request)
    {
        HttpResponseMessage response = request.CreateResponse();
        response.Content =
                new PushStreamContent(new Action<Stream, HttpContent,                    TransportContext>(OnStreamAvailable),
                    "text/event-stream");     
        return response;
    }
    private void OnStreamAvailable(Stream stream, HttpContent httpContent, TransportContext context)
    {
        streamWriter = new StreamWriter(stream) { AutoFlush = true };
    }
    public IHttpActionResult Post(JoinRoomFormViewModel vm)
    {
        streamWriter.WriteLine("data:smth\n");
    }

这是一个近似的使用示例。

但是当发送第一个事件时,客户端不会收到此数据。 GET查询的状态(使用EventSource进行连接)从等待内容下载更改。

当发送第二个事件时,客户端接收第一个事件发送的数据。等

有时,客户端会同时收到两个事件(最新和之前),但下次没有任何事件再次收到。

我该如何解决这个问题?

0 个答案:

没有答案