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

发布于 2024-08-11 20:11:24 字数 1874 浏览 1 评论 0原文

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

ASPNET 早在 2005 年就引入了“异步页面”。其想法是应用熟悉的 . NET 异步模型到 ASP.NET 页面处理

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 场景中实现更好的扩展。

问题2:有人能解释一下吗?

I don't mean to ask, is Comet easier in ASPNET than in Jetty? I mean, is Comet easier inn either ASPNET or Jetty, as compared to other alternatives? I think the asynch capabilities of ASP.NET and Jetty specifically make Comet more scalable when implemented on those platforms and I'd like to confirm that.

ASPNET introduced "Asynchronous pages" back in 2005. The idea was to 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: Doesn't this make ASP.NET scale much better for Comet-style applications?
Has anyone used this and tested it?

I think that other server-side frameworks also have something similar. If I'm not mistaken Jetty has something like this, to enable better scale in Comet scenarios.

Q2: Can anyone shed light on that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

避讳 2024-08-18 20:11:24

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

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

The asynchronous processing in .NET does indeed provide a basis for building comet applications. Specifically, it's the IHttpAsyncHandler that can be used as a foundation.

That said, without a third-party library, implementing Comet from scratch is... difficult. There's a .NET implementation of Comet for IIS called WebSync that would compare against Jetty.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文