asp.net - Comet 在 ASP.NET 中使用异步页面更容易吗?

标签 asp.net asynchronous jetty comet

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

ASPNET 早在 2005 年就引入了“异步页面”。这个想法是为了 apply the familiar .NET asynch model to ASP.NET page processing .

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:对于 Comet 风格的应用程序,这不是使 ASP.NET 的扩展性更好吗?
有没有人用过这个并测试过?

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

Q2:任何人都可以阐明这一点吗?

最佳答案

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

也就是说,如果没有第三方库,从头开始实现 Comet 是……困难的。有一个用于 IIS 的 Comet 的 .NET 实现,名为 WebSync这将与 Jetty 进行比较。

关于asp.net - Comet 在 ASP.NET 中使用异步页面更容易吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756576/

相关文章:

javascript - Html.ActionLink : popup(custom), 然后重定向

c# - 解析 dd/MM/yyyy 格式时出现日期时间解析错误。字符串未被识别为有效的日期时间

java - 如何用 Jetty 修复 "Could not find necessary SLF4j logging jars"?

java - 使用omnifaces时 Weld 类加载异常

java - CompletableFuture : after async call, 当前线程中的处理结果

java - Jetty RESTful 具有多种数据格式

c# - 在ASP.net中使用静态变量缓存信息可以吗?

c# - 拆分字符串(生日)得到日、月、年

python - 在 Celery 中,如何运行一个任务,然后让该任务运行另一个任务,并继续运行?

ios - 创建网页并从中异步加载应用程序数据