2012-02-15 31 views
10

Tôi sắp xếp các tùy chọn kiến ​​trúc cho một dự án sẽ hiển thị các cập nhật trực tiếp (như Facebook) của các hoạt động của người dùng - thông tin đăng nhập, ảnh, vv Hai thành phần giao diện người dùng chính là khu vực cuộn tự động cập nhật. (ảnh, v.v.) và một thanh công cụ sẽ cập nhật với những thứ như số lượng tin nhắn được cập nhật, v.v.Tùy chọn cho các thông báo và cập nhật web trong thời gian thực bằng cách sử dụng công nghệ Comet/XMPP và WebSocket trên ngăn xếp của Microsoft?

Đối thủ là công nghệ Jabber/Comet/XMPP và WebSocket.

Comet trại:

WebSockets trại:

Vì đây cơ sở hạ tầng hiện tại là một chồng Microsoft, tôi không muốn giới thiệu các máy chủ dựa trên nền Java vào trộn. Nói điều này, nó để lại (một rất hấp dẫn) WebSync (Comet), và SuperWebSocket (WebSockets). Tuy nhiên, sự tích hợp DLL của Pokein khá liền mạch vào một dự án .Net.

Có bất kỳ sáng kiến ​​WebSocket cấp sản xuất thực tế nào hơn cho .Net không? Còn quá sớm để chấp nhận WebSockets trên một ngăn xếp của Microsoft, và tôi có nên ủng hộ một thứ gì đó như Kazing không?

Tôi vẫn đang chờ báo cáo về các loại và phiên bản trình duyệt của cơ sở người dùng hiện tại của chúng tôi (kiểm tra tính tương thích HTML5). Tôi nghi ngờ rằng con số này sẽ thấp (cơ sở người dùng cũ). Nếu đúng như vậy, tùy chọn Comet sẽ là người chiến thắng.

Một số điều khác cần xem xét là gì?

Nhìn vào một số sáng kiến ​​.Net như Sockets.IO và những người khác, tôi nghĩ rằng điều này có thể quá nhiều trong giai đoạn trứng nước chưa, để áp dụng cho hệ thống sản xuất quy mô lớn.

Tôi có thể nhận được một số nhận xét từ bất kỳ ai đã sử dụng bất kỳ công nghệ và sản phẩm nào được liệt kê ở trên không?

Cảm ơn.

CẬP NHẬT

tôi vẫn đang săn tìm một số máy chủ WebSocket tốt đó là đáng tin cậy về mặt kĩ sản xuất. Tôi đã thêm XSockets và SignalR vào trại Websockets sau khi tìm thấy chúng. Hoewver, vẫn còn hai ứng cử viên chính vào thời điểm này. Điều đó có thể chỉ vì thực tế là họ có các đội tiếp thị tuyệt vời, tài liệu tốt dành cho nhà phát triển - API và video. Nhiều triển khai khác dường như vẫn đang ở giai đoạn mới sinh, nơi các ví dụ được đưa ra kết nối chỉ với một vài khách hàng. Trong khi điều này thể hiện công nghệ, các bản demo này không được sao lưu với dữ liệu tải trọng/tải trọng đáng kể.Kaazing và LightStreamer đáp ứng các yêu cầu dưới đây.

XSockets có một số ví dụ hay, nhưng lại thiếu một số chỉ số sản xuất thực.

Dường như SignalR chưa được thử nghiệm trong môi trường sản xuất thực sự. Một giải pháp mở rộng quy mô đang được phát triển nhưng chưa xuất hiện ổn định. Rất mong được thấy dự án này hoạt động như thế nào trong tương lai.

yêu cầu tiểu học là:

  1. Khả năng để thực hiện công nghệ dự phòng (nếu HTML5/WebSockets là không có sẵn)
  2. số cao kết nối đồng thời và số lượng tin nhắn mỗi thứ hai
  3. Scalable - Khả năng để thêm các máy chủ/nút bổ sung cho các yêu cầu giao thông lớn hơn
+1

Tôi thực sự muốn nghe kinh nghiệm của bất kỳ ai bằng SignalR. Cảm ơn bạn. –

+0

ElHaix, bạn đã kết thúc điều gì và bạn sẽ đề xuất gì với ai đó hỏi câu hỏi này hôm nay? – Jonesome

Trả lời

0

Mức tăng hiệu suất bạn nhận được với WebSockets so với các giải pháp sao chổi truyền thống là trong nhiều đơn đặt hàng của phạm vi độ lớn; Tôi chắc chắn sẽ đi với trại WebSockets. Here là một so sánh của nhà cung cấp sao chổi truyền thống về hai công nghệ, đo lường một yếu tố trên 150x có lợi cho WebSockets (700ms so với 3 ms ở 50.000 người dùng).

Một số lưu ý về đại diện của Kaazing:

Kaazing được hỗ trợ đầy đủ trên Microsoft dưới dạng nền tảng máy chủ. Ngoài ra, như bạn lưu ý, Kaazing hỗ trợ nhiều thư viện và công nghệ của khách hàng, bao gồm cả ngăn xếp của Microsoft: .NET và Silverlight, được nhiều khách hàng của chúng tôi sử dụng một cách vui vẻ.

Ngoài ra, Kaazing cung cấp các giao thức kinh doanh phong phú trên đầu trang của WebSockets, cho phép bạn "nói" XMPP trực tiếp trong mã khách hàng của bạn.

Giới thiệu về hỗ trợ trình duyệt: Kaazing cung cấp mô phỏng WebSocket đặc biệt tốt, hỗ trợ tất cả các trình duyệt trên mạng, bao gồm cả trình duyệt cũ, tất cả đều quay lại IE6. Bạn có thể đọc thêm về nó trong this blog post.

Về độ trưởng thành: Cổng Kaazing WebSocket đã được vận chuyển từ năm 2009 và có số lượng khách hàng lớn trong nhiều ngành, bao gồm tài chính, hậu cần, chơi game và bán lẻ; nền tảng rất trưởng thành với sự hỗ trợ đỉnh cao.

+0

Peter, tôi cũng đọc một trong các ý kiến ​​của bạn (http://stackoverflow.com/questions/9167564/actionscript-socket-vs-websocket/9204242#9204242), khả năng tự động chọn lớp vận chuyển thích hợp là quan trọng (các trình duyệt cũ), đó là những gì tôi thu thập mà bạn đang ám chỉ trong '... cho phép bạn "nói" XMPP ... "Một số điểm rất tốt. Bạn có biết về bất kỳ triển khai máy chủ dựa trên Net nào để so sánh không? :) – ElHaix

+0

Xin lỗi, tôi không quen thuộc với các máy chủ .NET WebSocket –

+0

Trên XMPP: Chúng tôi hỗ trợ nhắn tin XMPP trên WebSockets.Vì vậy, thay vì bạn phát triển dựa trên các API WebSocket khá thấp, bạn có thể sử dụng các giao thức/API thư cao cấp hơn ngồi trên đầu trang của bản địa (hoặc trong trường hợp của các trình duyệt cũ hơn, mô phỏng) WebSockets –

1

Vì lý do bao gồm. những người đã nói ở trên, tôi sẽ đi với WebSockets.

Nếu bạn đi với WebSockets, bạn cũng có thể xem xét Autobahn WebSockets, một máy chủ WS hiệu năng cao hỗ trợ Windows nơi nó chạy trên IOCP (cổng hoàn thành I/O).

Điều sau là quan trọng nếu bạn muốn chia tỷ lệ thành số kết nối lớn (hàng trăm nghìn).

Tuyên bố từ chối trách nhiệm: Tôi là tác giả của Autobahn WebSockets. Công nghệ cơ bản là OSS. Chúng tôi hiện đang chuẩn bị một đề nghị thương mại, một trung tâm nhắn tin thời gian thực được cung cấp như một thiết bị ảo (chạy trên VMware/sphere) .. được tích hợp đầy đủ, thiết bị cứng. Cái sau cũng cho phép bạn đẩy thông báo qua hub bằng cách sử dụng một HTTP/POST cũ đơn giản .. nó có một API REST cho phép bạn gửi đến các máy khách được kết nối qua WS. Nếu bạn quan tâm đến thử nghiệm beta riêng tư, hãy liên hệ với tôi ..

1

Dường như bạn chọn triển khai Comet ổn định nhất hiện có.Tất cả đều trông ổn định, có khả năng lưu trữ từ 10 đến hàng trăm nghìn người dùng trên mỗi nút và hơn thế nữa.

Vì vậy, điều gì có thể là tiếp theo? Ví dụ: PokeIn sẽ lưu trữ tất cả các khía cạnh của ứng dụng web trên VisualJS.NET; Video-1, Video-2

này cũng cho thấy được xây dựng trong khả năng của thư viện này và các giống bạn có thể làm ..

Bên cạnh đó, phiên bản mới nhất hỗ trợ Base64 serialization cho các thông điệp giữa một client và server do đó không khỏa thân hơn JSON tin nhắn trên các gói mạng.

CẬP NHẬT: PokeIn 2.0 có hỗ trợ WebSockets tích hợp sẵn.

+0

Tại sao có quá nhiều video "hướng dẫn" hoặc "demo", không có tường thuật? Thêm một hướng dẫn âm thanh cho những điều này sẽ hữu ích! – ElHaix

2

WebSync v4 sử dụng WebSockets ngoài việc giảm trở lại cuộc thăm dò ý kiến ​​dài/gọi lại khi cần. WebSockets trong WebSync cũng trên tất cả các cổng HTTP chuẩn, do đó sẽ không có bất kỳ vấn đề nào với các router/filrewalls/etc.

Trên hệ thống "bình thường", bạn sẽ thấy ~ 20k đồng thời (mỗi nút) và ~ 100k thư/giây. Tuy nhiên, đó là số rất vì nó phụ thuộc rất nhiều vào hệ thống của bạn và các loại thư bạn đang gửi, v.v. Chúng tôi đã thấy cao tới 50 nghìn người dùng (mỗi nút) và (trong một bài kiểm tra khác) 300k thư /thứ hai.

(Disclaimer: Tôi làm việc cho Frozen Mountain)

0

SignalR thắng.

Bây giờ sản phẩm đã trưởng thành, thật dễ dàng để thực hiện. Về cơ bản, nó cung cấp những gì mà các gói $ và $ đô la đều có chi phí, nhưng không có số tiền tiếp thị để giới thiệu một số triển khai thực sự thú vị.

Từ góc độ kỹ thuật, bạn có thể thực hiện những điều tương tự với SignalR. Nếu các chuyên gia công nghệ của bạn đề xuất khác, họ có thể không biết cách thực hiện SignalR trong môi trường cân bằng tải (hoặc thậm chí là của chính nó).

+0

Và bạn (và SignalR) không biết về giao thức phụ websockets. –