it-swarm-vi.tech

Comet thực hiện cho ASP.NET?

Tôi đã xem xét các cách để thực hiện nhắn tin giống như gmail bên trong trình duyệt và đã đến khái niệm Comet . Tuy nhiên, tôi chưa thể tìm thấy một triển khai .NET tốt cho phép tôi thực hiện việc này trong vòng IIS (ứng dụng của chúng tôi được viết bằng ASP.NET 2.0).

Các giải pháp tôi tìm thấy (hoặc có thể nghĩ ra, đối với vấn đề đó) yêu cầu để lại một luồng đang chạy cho mỗi người dùng - để nó có thể trả lời phản hồi cho anh ta khi anh ta nhận được tin nhắn. Tất nhiên, điều này không có quy mô.

Vì vậy, câu hỏi của tôi là - bạn có biết về một triển khai ASP.NET cho Comet hoạt động theo một cách khác không? Điều đó thậm chí có thể với IIS?

102
Doron Yaacoby

Comet đang thách thức mở rộng quy mô với IIS vì khả năng kết nối liên tục của sao chổi, nhưng hiện tại có một nhóm đang xem xét các kịch bản của Comet. Ngoài ra, hãy nhìn vào blog của Aaron Lerch vì tôi tin rằng anh ấy thực hiện một số công việc Comet sớm trong ASP.NET.

44
Scott Hanselman

WebSync là máy chủ Comet có thể mở rộng tuân thủ tiêu chuẩn, tích hợp trực tiếp vào đường ống IIS/.NET. Nó cũng có sẵn theo yêu cầu như một dịch vụ lưu trữ.

Nó chính thức hỗ trợ tới 20.000 kết nối máy khách đồng thời trên mỗi nút máy chủ, nhưng các thử nghiệm riêng lẻ đã thấy nó lên tới 50.000. Thông lượng tin nhắn là tối ưu xung quanh mốc 1.000-5.000 khách hàng đồng thời, với các tin nhắn được phân phối cao tới 300.000 mỗi giây từ một nút.

Nó bao gồm hỗ trợ phía máy khách cho JavaScript, .NET/Mono, iOS, Mac OS X, Java, Silverlight, Windows Phone, Windows Runtime và .NET Compact, với sự hỗ trợ phía máy chủ cho .NET/Mono và PHP.

Phân cụm được hỗ trợ bằng cách sử dụng SQL Server hoặc Azure Cacheing, nhưng các nhà cung cấp tùy chỉnh có thể được viết cho bất cứ thứ gì (Redis, NCache).

Tuyên bố miễn trừ trách nhiệm: Tôi làm việc cho công ty phát triển sản phẩm này.

33
Anton

Gần đây tôi đã viết một ví dụ đơn giản về Máy chủ trò chuyện bỏ phiếu dài bằng cách sử dụng Bộ điều khiển Async MVC 3 dựa trên một bài viết tuyệt vời Đất sét Lenhart

Bạn có thể sử dụng ví dụ khi triển khai AppHarbor tôi thiết lập dựa trên nguồn từ dự án BitBucket.

Ngoài ra, thêm thông tin có sẵn từ bài đăng trên blog của tôi giải thích dự án .

15
Jacob

Trên thực tế, có nhiều lựa chọn để tạo trang web hỗ trợ ajax với ASP.NET nhưng thành thật mà nói, PokeIn là cách dễ nhất để tạo một sao chổi ajax hỗ trợ ứng dụng web. Nó đã cứu một trong những dự án của công ty tôi.

4
BigbangO

Bạn cũng có thể xem Kaazed Enterprise Gateway đã phát hành sản xuất cổng webSocket [HTML5] của họ, thay thế hoàn toàn cách sao chổi và cho phép kết nối song công hoàn toàn giữa các trình duyệt và máy chủ ứng dụng.

Bạn cũng có thể nhìn vào Light Streamer Demos

3
Vikram

Nhóm WS-I đã xuất bản một cái gì đó gọi là "Hồ sơ bảo mật đáng tin cậy" có Glass Glass và triển khai NET rõ ràng là hoạt động liên tục tốt.

Với bất kỳ may mắn nào cũng có một Javascript thực hiện ngoài đó.

Ngoài ra còn có một triển khai Silverlight sử dụng HTTP duplex. Bạn có thể kết nối javascript với Silverlight để nhận cuộc gọi lại khi xảy ra Push.

Ngoài ra còn có phiên bản trả tiền thương mại .

1
goodguys_activate

Tôi đã từng sử dụng một trang web trò chuyện từ lâu, sử dụng một máy chủ phát trực tuyến http được xây dựng tùy chỉnh. Tôi thực sự đã tái tạo phần mềm đó tại một thời điểm vì tò mò và nó đủ dễ để làm, tôi nghĩ vậy. Tôi sẽ không bao giờ thử thực hiện một loại "yêu cầu vô hạn" tương tự trong IIS, đặc biệt là trong ASP.NET, bởi vì các yêu cầu buộc một luồng nhóm luồng (hoặc IO luồng, nếu xử lý không đồng bộ được sử dụng) vô thời hạn, có nghĩa là bạn chỉ có thể xử lý rất nhiều trên mỗi máy chủ khi cấu hình nhóm luồng của bạn cho phép.

Nếu tôi có nhu cầu chính đáng về chức năng như vậy, tôi thành thật viết một máy chủ http tùy chỉnh cho nó.

Tôi biết điều đó không thực sự trả lời câu hỏi của bạn, nhưng tôi nghĩ đầu vào có thể có liên quan.

1
Chris

Tôi nghĩ rằng cách tiếp cận Comet không thực sự có khả năng mở rộng trừ khi bạn chuẩn bị mở rộng trang trại theo chiều ngang (bằng cách thêm nhiều máy chủ web vào hỗn hợp). Cách thức hoạt động là nó để lại kết nối TCP cho mỗi phiên người dùng, để máy chủ có thể thỉnh thoảng đẩy công cụ vào kết nối đó để thông báo ngay lập tức cho người dùng về thay đổi hoặc hoạt động.

0
cruizer