2009-11-18 14 views
5

Sormak istemiyorum, , ASPNET'te Comer'da Jetty'den daha mı kolay? Yani, diğer alternatiflerle karşılaştırıldığında Comnet daha kolay ASPNET veya Jetty, han mı? ASP.NET ve Jetty'nin asynch yetenekleri özellikle Comet'i bu platformlarda uygulandığında daha ölçeklenebilir hale getirdiğini ve bunu doğrulamak istediğimi düşünüyorum.Comet Asynchronous Pages ile ASP.NET'te daha mı kolay?

ASPNET, "Asenkron sayfaları" 2005'te geri getirdi. Fikir, apply the familiar .NET asynch model to ASP.NET page processing idi.

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(); 
    } 
} 

S1: bu ASP.NET Comet tarzı uygulamalar için çok daha iyi ölçek yapmaz? Bunu kullanan ve test eden var mı?

Diğer sunucu tarafı çerçevelerinin de benzer bir şeyleri olduğunu düşünüyorum. Yanılmıyorsam Jetty, Comet senaryolarında daha iyi bir ölçek sağlamak için böyle bir şeye sahip.

S2: herkes ışık tutacak misiniz?

+0

Gördüğüm kadarıyla, bu durumda eşzamansız, iş parçacıklarının sunucuda nasıl işlendiğine göre görünüyor ... Bildiğim kadarıyla, sayfa işlenirken çıktı hala bir parça halinde gönderilir, Comet'in ASP.NET modeliyle çalışması olasılığını ortadan kaldırır ... Yine de yanlış olduğunu kanıtlamaktan mutluluk duyarım. – Blixt

+0

Hey Blixt - WebSync'e bakın (http://www.frozenmountain.com/websync). Comet gerçekten sadece mümkün değil, aynı zamanda IIS/.NET ile kanıtlanmış. – jvenema

+0

jvenema, bu soru değildi. Soru şuydu: * async sayfalarını kullanarak daha kolay veya daha ölçeklenebilir *. – Cheeso

cevap

4

.NET'teki asenkron işlem gerçekten kuyruklu yıldız uygulamaları oluşturmak için bir temel sağlar. Özellikle, bir temel olarak kullanılabilecek IHttpAsyncHandler.

Bu, bir üçüncü taraf kitaplığı olmadan, Comet'i sıfırdan başlatmanın ... zor olduğunu söyledi. Jetty karşı karşılaştırmak için WebSync adlı IIS için Comet bir .NET uygulaması var.

+0

Çok kötü, ASP.NET alanında bulabildiğim hiçbir açık kaynak ürün yok. Java alanında çok sayıda seçenek var. – Kelly

+2

@Kelly: GitHub'da aspComet adlı bir açık kaynak uygulaması var: https://github.com/nmosafi/aspComet –

İlgili konular