使用异步页面在 ASP.NET 中使用 Comet 是否更容易?

2024-01-09

我不是想问,Comet 在 ASPNET 中比在 Jetty 中更容易吗?我是说,与其他替代方案相比,Comet 在 ASPNET 或 Jetty 中是否更容易?我认为 ASP.NET 和 Jetty 的异步功能特别使 Comet 在这些平台上实现时更具可扩展性,我想确认这一点。

ASPNET 早在 2005 年就引入了“异步页面”。这个想法是将熟悉的.NET异步模型应用于ASP.NET页面处理 http://msdn.microsoft.com/en-us/magazine/cc163725.aspx.

public partial class AsyncPage : System.Web.UI.Page
{
    private WebRequest _request;

    void Page_Load (object sender, EventArgs e)
    {
        AddOnPreRenderCompleteAsync (
            new BeginEventHandler(BeginAsyncOperation),
            new EndEventHandler (EndAsyncOperation)
        );
    }

    IAsyncResult BeginAsyncOperation (object sender, EventArgs e, 
        AsyncCallback cb, object state)
    {
        _request = WebRequest.Create("http://msdn.microsoft.com");
        return _request.BeginGetResponse (cb, state);
    }
    void EndAsyncOperation (IAsyncResult ar)
    {
        string text;
        using (WebResponse response = _request.EndGetResponse(ar))
        {
            using (StreamReader reader = 
                new StreamReader(response.GetResponseStream()))
            {
                text = reader.ReadToEnd();
            }
        }

        Regex regex = new Regex ("href\\s*=\\s*\"([^\"]*)\"", 
            RegexOptions.IgnoreCase);
        MatchCollection matches = regex.Matches(text);

        StringBuilder builder = new StringBuilder(1024);
        foreach (Match match in matches)
        {
            builder.Append (match.Groups[1]);
            builder.Append("<br/>");
        }

        Output.Text = builder.ToString ();
    }
}

Q1:这难道不会使 ASP.NET 对于 Comet 风格的应用程序具有更好的扩展性吗? 有人使用过这个并测试过吗?

我认为其他服务器端框架也有类似的东西。如果我没记错的话,Jetty 有类似的东西,可以在 Comet 场景中实现更好的扩展。

Q2:任何人都可以阐明that?


.NET 中的异步处理确实为构建 Comet 应用程序提供了基础。具体来说,IHttpAsyncHandler 可以用作基础。

也就是说,如果没有第三方库,从头开始实现 Comet 是......困难的。 IIS 上有一个 Comet 的 .NET 实现,名为WebSync http://www.frozenmountain.com/websync与 Jetty 相比。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用异步页面在 ASP.NET 中使用 Comet 是否更容易? 的相关文章

  • 如何在 ASP.NET 5/vNext/Core 中使用 Elmah?

    我对如何在 ASP NET 5 MVC 6 项目中使用 Elmah 有点困惑 我从 nuget 得到了包 它添加了 Elmah Mvc 2 1 2 到project json 中的依赖项 我不知道从这里到哪里去 以前 nuget 会向 we
  • ASP.NET 搜索表单 - 动态 Linq to SQL?

    我有一个搜索表单 允许用户以多种不同的方式搜索多个不同的字段 这是我的代码的示例 var claims from c in db Claims select c switch ddlSearchField Text case StartsW
  • Html 文本输入撤消不起作用

    我遇到一个问题 html 文本框和文本区域的撤消功能 ctrl z 和右键单击 gt 撤消 被禁用 这种情况发生在 ASP NET 生成的页面上 其中包含大量 Silverlight JavaScript JQuery 和 Ajax 大约
  • asp.net vb 用户控件在调用页面上引发事件

    我正在尝试了解用户控件 我创建了一个具有文本框和按钮的用户控件 我想要做的是 当我单击用户控件中的按钮时 在 aspx 页面中填充标签 我知道我可以在页面上有一个按钮 使用用户控件上的一些属性来获取该信息 但我想知道如何使用用户控件的按钮来
  • 元素“system.webServer”具有无效的子元素“httpPlatform”

    我正在学习 Shawn Wildermuth 的课程here https app pluralsight com library courses aspdotnet 5 ef7 bootstrap angular web app table
  • 在Application_AquireRequestState事件中用POST数据重写Url

    我有一个在其中注册路线的代码Application AcquireRequestState应用程序的事件 注册路由后 我会在 Http 运行时缓存中设置一个标志 这样我就不会再次执行路由注册代码 在此事件中注册路线有特定原因Applicat
  • 用户控件内所有控件均为空

    我有一个 UserControl 它使用 UserControl 以及其他控件 In the ascx文件我有以下代码
  • 我可以仅在少数情况下关闭模拟吗

    我有一个始终使用模拟的应用程序 但是 当用户以管理员身份登录时 一些操作需要他们写入服务器本身 现在 如果这些用户在实际服务器上没有权限 有些用户没有 则不会让他们写入 我想做的是关闭几个命令的模拟 有没有办法做这样的事情 using Ho
  • Node.js 和 Express:异步操作后如何返回响应

    我是 Node js 新手 所以我仍然对异步函数和回调很感兴趣 我现在的难题是如何在异步操作中从文件读取数据后返回响应 我的理解是发送回复的工作方式如下 这对我有用 app get search function req res res s
  • 使用 keyup 事件仅触发表单验证中文本框的部分规则,并取消其余规则的事件

    我的应用程序中有一个表单 我正在使用 jQuery 表单验证插件对其进行验证 其中一项规则是远程类型 用于验证用户名是否不存在 我已经能够覆盖 onkeyup 事件 因此规则不会为我输入的每个字母发送到服务器 我完成的方式如下 var va
  • IdentityServer4 无法在生产环境中运行

    我正在使用 IdentityServer4 和 ASP NET Core 3 0 的 React 启动项目 预览版 4 一直运行良好 直到我构建解决方案并尝试使用 dotnet 命令从 cmd 提示符运行它 每次启动应用程序时 它都会告诉我
  • ServiceStack:异步/等待服务处理程序

    我读过一些涉及这个问题的问题 尽管其中许多已经有好几年了 如何在 ServiceStack API 中编写 Service 处理程序 使其成为 async await docs servicestack net 上没有任何文档提到 asyn
  • 如何在 ASP.NET 中检查用户是否在线?

    该网站 最后活动 1 分钟前来自此 IP 地址 背后的逻辑是什么 如果您在隐藏字段中获取用户的 IP 地址 我该如何在 vb net 中执行此操作 我如何查看有多少用户在线使用该应用程序 ASP NET 会员服务支持此功能 要获取特定用户的
  • 检查Web服务是否存在

    有人可以告诉我确定给定 URL 是否存在 Web 服务 ASP NET 的最佳方法吗 我假设一种方法类似于使用 System Net Webclient 发出请求 但我如何确定它是否是有效的 Web 服务以及我应该发出哪种类型的请求 编辑
  • Microsoft Access 数据库引擎找不到对象“Sheet1$”

    我正在将保存在服务器文件夹中的模板 Excel 文件复制到具有不同名称的同一文件夹中 插入值 我可以复制文件 但是当我尝试插入值时 它显示工作表 找不到 我给出了正确的工作表名称 在名为sheet1的电子表格中只添加了一张工作表 仍然显示错
  • 如何通过 eBay API 获取 PayPal TransactionID

    我需要通过 API 获取 eBay 上已付款订单的 PayPal TransactionID 我使用外部事务 如下所述 https ebay custhelp com app answers detail a id 1550 linking
  • 客户端可以看到服务器端源代码吗? ASP.NET

    我想知道使用任何浏览器的任何客户端是否可以看到我的服务器端代码 如果是这样 我怎样才能防止这种情况发生 实际上 客户在访问我的网站时能够看到什么 asp net 我以前从未使用过 asp net 但我认为它与 PHP 或 Perl 相同 客
  • ASP.NET 中继器错误:找不到类型 xx 的默认成员

    这是我的 aspx 页面中的中继器控件
  • 如何解决 服务器错误?

    我在 Visual Studio 中制作了一个 ASP NET 应用程序 当它准备好后 我做了 发布网站 我将创建的文件夹放在我的网站上 当我访问网站上的应用程序时 出现以下错误 应用程序中的服务器错误 配置错误 描述 处理服务此请求所需的
  • 集成 Windows 身份验证可以在 Firefox 中使用吗?

    如果我的 ASP NET 应用程序是使用 Windows 集成身份验证为 ADFS 设置的 我知道这可以在 IE 中工作 但是它可以在 Firefox 中工作吗 我在网络上看到一些内容表明存在问题 您需要在每个客户端浏览器中设置解决方法 h

随机推荐