Saya telah mencari cara untuk mengimplementasikan perpesanan seperti gmail di dalam browser, dan sampai pada konsep Comet . Namun, saya belum dapat menemukan implementasi .NET yang bagus yang memungkinkan saya melakukan ini dalam IIS (aplikasi kami ditulis dalam ASP.NET 2.0).
Solusi yang saya temukan (atau bisa dipikirkan, dalam hal ini) memerlukan meninggalkan utas yang sedang berjalan per pengguna - sehingga dapat mengembalikan respons kepadanya begitu dia mendapat pesan. Ini tidak berskala sama sekali, tentu saja.
Jadi pertanyaan saya adalah - apakah Anda mengetahui implementasi ASP.NET untuk Comet yang bekerja dengan cara yang berbeda? Apakah itu mungkin dengan IIS?
Jawaban:
Komet sulit untuk diukur dengan IIS karena konektivitas komet yang terus-menerus, tetapi ada tim yang melihat skenario Komet sekarang. Juga lihat blog Aaron Lerch karena saya yakin dia telah melakukan beberapa pekerjaan Comet awal di ASP.NET.
sumber
WebSync adalah server Comet terukur yang memenuhi standar yang terintegrasi langsung ke dalam pipeline IIS / .NET. Ini juga tersedia sesuai permintaan sebagai layanan yang dihosting.
Ini secara resmi mendukung hingga 20.000 koneksi klien bersamaan per node server, tetapi pengujian individu telah melihatnya mencapai 50.000. Throughput pesan optimal di sekitar 1.000-5.000 tanda klien bersamaan, dengan pesan yang dikirim setinggi 300.000 per detik dari satu node.
Ini mencakup dukungan sisi klien untuk JavaScript, .NET / Mono, iOS, Mac OS X, Java, Silverlight, Windows Phone, Windows Runtime, dan .NET Compact, dengan dukungan sisi server untuk .NET / Mono dan PHP.
Pengelompokan didukung menggunakan SQL Server atau Azure Caching di luar kotak, tetapi penyedia kustom dapat dibuat untuk apa saja (Redis, NCache).
Penafian: Saya bekerja untuk perusahaan yang mengembangkan produk ini.
sumber
Baru-baru ini saya menulis contoh sederhana dari Server Obrolan Polling Panjang menggunakan MVC 3 Async Controllers berdasarkan file artikel hebat oleh Clay Lenhart
Anda bisa menggunakan contoh pada penerapan AppHarbor yang saya siapkan berdasarkan sumber dari proyek BitBucket.
Juga, lebih banyak informasi tersedia dari posting blog saya yang menjelaskan proyek tersebut .
sumber
Sebenarnya ada banyak pilihan untuk membuat website yang didukung ajax dengan ASP.NET tapi jujur saja, PokeIn adalah cara termudah untuk membuat aplikasi web yang didukung ajax komet. Ini telah menyelamatkan salah satu proyek perusahaan saya.
sumber
Anda mungkin juga melihat Kaazing Enterprise Gateway yang telah membuat rilis produksi gateway webSocket [HTML5] mereka yang sepenuhnya menggantikan cara komet dan memungkinkan koneksi dupleks penuh antara browser & server aplikasi.
Anda juga dapat melihat Demo Streamer Cahaya
sumber
Saya pernah menggunakan situs obrolan dahulu kala yang menggunakan server streaming http yang dibuat khusus. Saya benar-benar mereproduksi perangkat lunak itu pada satu titik karena rasa ingin tahu, dan menurut saya cukup mudah untuk melakukannya. Saya tidak akan pernah mencoba menerapkan jenis serupa "permintaan tak terbatas" di IIS, terutama di ASP.NET, karena permintaan mengikat utas kumpulan utas (atau utas IO, jika penangan asinkron digunakan) tanpa batas, yang berarti Anda hanya dapat menangani begitu banyak per server karena konfigurasi kumpulan utas Anda memungkinkan.
Jika saya memiliki kebutuhan sah yang kuat untuk fungsi seperti itu, sejujurnya saya akan menulis server http khusus untuk itu.
Saya tahu itu tidak benar-benar menjawab pertanyaan Anda, tetapi saya pikir masukannya mungkin relevan.
sumber
Grup WS-I menerbitkan sesuatu yang disebut "Profil Aman yang Andal" yang memiliki implementasi Glass Fish dan .NET yang tampaknya saling beroperasi dengan baik.
Semoga saja ada implementasi Javascript di luar sana juga.
Ada juga implementasi Silverlight yang menggunakan HTTP Duplex. Anda dapat menghubungkan javascript ke objek Silverlight untuk mendapatkan callback saat terjadi push.
Ada juga versi berbayar komersial juga.
sumber
Saya pikir pendekatan Comet tidak benar-benar dapat diskalakan kecuali Anda siap untuk memperluas pertanian web secara horizontal (dengan menambahkan lebih banyak server web ke dalam campuran). Cara kerjanya adalah membiarkan koneksi TCP terbuka per sesi pengguna, hanya agar server dapat mendorong hal-hal ke koneksi itu dari waktu ke waktu untuk segera memberi tahu pengguna tentang perubahan atau aktivitas.
sumber