2010-02-23 18 views
7

Tôi muốn xây dựng một ứng dụng dựa trên sao chổi và muốn nó có thể duy trì tới 1000 kết nối đồng thời. Theo tôi hiểu, Tornado có lợi thế là không sinh ra một luồng cho mỗi yêu cầu, do đó cho phép nó xử lý hàng ngàn yêu cầu thăm dò ý kiến ​​dài một cách dễ dàng.Có bất kỳ nguồn mở C# dựa trên nền tảng không chặn, sự kiện dựa trên máy chủ web như Tornado?

+0

Bạn có cần dịch vụ để chạy trên máy tính để bàn không? IIS đi kèm với Windows Server, và sẽ có thể xử lý tải này một cách tầm thường. –

+0

IIS có sinh ra một luồng cho mỗi yêu cầu HTTP không? Theo tôi hiểu, đây là lý do tại sao Tornado phù hợp hơn với hệ thống thăm dò ý kiến ​​dài hơn Apache. Tôi giả sử IIS làm điều tương tự. –

+3

IIS không mở rộng chuỗi cho mỗi yêu cầu HTTP, không có số lượng. Nó sử dụng cổng hoàn thành IO. –

Trả lời

8

Tôi nghĩ rằng Manos de Mono là những gì bạn đang tìm kiếm. Nó vẫn còn khá sớm, nhưng có vẻ đầy hứa hẹn.

3

Để xử lý yêu cầu bỏ phiếu dài với ASP.NET/IIS, bạn muốn triển khai trình xử lý HTTP tùy chỉnh và triển khai IHttpAsyncHandler. Điều này cho phép bạn bắt đầu xử lý yêu cầu, sử dụng một chuỗi công nhân ASP.NET và sau đó trả lại luồng cho nhóm luồng trong khi chờ đợi một sự kiện để kích hoạt phản hồi.

http://msdn.microsoft.com/en-us/library/ms227433.aspx

xử lý HTTP đồng bộ cho phép bạn để bắt đầu một quá trình bên ngoài (như một phương pháp gọi đến một máy chủ từ xa) trong khi xử lý tiếp tục xử lý. Trình xử lý có thể tiếp tục mà không cần chờ quá trình bên ngoài kết thúc.

ASP.NET MVC cũng cung cấp AsyncController để đơn giản hóa việc triển khai yêu cầu không đồng bộ trong khuôn khổ này.

http://msdn.microsoft.com/en-us/library/ee728598.aspx

0

bạn có thể thử Mongrel2 với các chấm ràng buộc chấm. Nó là máy chủ web bất khả tri về ngôn ngữ rất nhanh. Nó hoạt động thông qua zeroMQ.

Các vấn đề liên quan