c# - 如何在 ASP.NET 上发生断开连接时立即检测到而不进行轮询?

标签 c# javascript asp.net html server-sent-events

我有一个server-sent events ASP.NET 中的处理程序

Response.ContentType = "text/event-stream";
while (true)
{
   if(thereIsAMessage)
   {
       Response.Write(message);
       Response.Flush();
       if (Response.IsClientConnected == false)
       {
           break;
       }
   }

   System.Threading.Thread.Sleep(1000);
}

问题是,当我向客户端发送内容时,我只能检测到客户端断开连接。而且我不想轮询它,这从一开始就违背了使用服务器发送事件的整个目的。

最佳答案

尝试查看SignalR - 对于长轮询很有用,服务器通知并不难实现。在可用时使用 websocket。使用集线器可以非常轻松地实现您的场景。

关于c# - 如何在 ASP.NET 上发生断开连接时立即检测到而不进行轮询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9771581/

相关文章:

c# - 使项目在多个 .NET 版本之间保持同步

c# - Microsoft.VisualStudio.Profiler.dll 在哪里?

c# - 同一应用程序中的不同版本的 ReportViewer 组件

javascript - 如果设备在移动设备上,则更改 css

c# - 返回 JSON 对象 (ASP.NET WebAPI)

c# - 将剪贴板中的文本发送到记事本等应用程序(C# 或 Powershell)

javascript - div 的幻灯片放映并更新任何 div 的字体大小

javascript - 身份验证 ExpressJS -> PassportJs : Error: Can't set headers after they are sent

html - 如何在代码后面获取html高度?

c# - 将 Google AMP(Accelerated Mobile Pages)应用于 ASP.NET Core 站点