2012-03-07 49 views
7

tôi không thể tìm thấy bất kỳ tiêu chuẩn hợp lý về so sánh giữa một khách hàng trò chuyện chạy với việc sử dụng Node.js trò chuyện máy chủ V.S. một khách hàng hoạt động với xmpp.máy chủ trò chuyện với WebSocket + Node.js vs một khách hàng bản địa với XMPP

Tôi biết Node.js là async và như xa như tôi biết để làm XMPP. Tuy nhiên, mối quan tâm chính của tôi là hiệu suất với cùng một lượng người dùng đồng thời.

Tôi sẽ cần thông tin này để viết một ứng dụng Android. Muốn biết ý kiến ​​của bạn và lợi thế/bất lợi bằng cách sử dụng cả hai hệ thống.

Xin cảm ơn trước.

+0

Bạn có bất kỳ ý tưởng nào về số lượng người dùng đồng thời sẽ được mong đợi không? (khoảng?) – TheHippo

+0

với node.js tôi nghĩ rằng 4000 và nếu nó là xmpp tôi đang nghĩ nhất 2000 ở cùng một phần cứng –

+0

Nó phụ thuộc vào phần cứng rõ ràng, nhưng nếu bạn đang nghĩ XMPP sẽ chỉ hỗ trợ một nửa số kết nối trên cùng một phần cứng tôi tin rằng bạn là sai. Số liệu thống kê cứng phụ thuộc vào hồ sơ ứng dụng và sử dụng, nhưng tôi biết các thiết lập XMPP một máy chủ xử lý 4K dễ dàng. Ngay cả jabber.org cũng chạy trên một máy chủ duy nhất, với kết nối 20K khi sử dụng tối đa.Cho rằng bạn đang nói rằng bạn sẽ không sử dụng nhiều tính năng XMPP, ứng dụng của bạn có lẽ sẽ nhận được nhiều hơn một máy chủ XMPP "bình thường" như jabber.org. – MattJ

Trả lời

1

Trong khi tôi hiểu những gì bạn đang hỏi, bạn đang cố gắng để so sánh một javascript thực hiện server-side (Node.js) với một giao thức tin nhắn (XMPP).

Có rất nhiều off-the-shelf server XMPP, và rất nhiều thư viện khách hàng, đã viết. Vì đây là những điều cụ thể bạn sẽ làm việc với bạn nên đánh giá những điều này nếu bạn đang xem xét sử dụng XMPP, và sau đó so sánh nó với các giải pháp khác cho vấn đề của bạn.

Nếu bạn tự mình thực hiện điều gì đó trên đầu trang Node và websockets thì bạn cần xử lý mọi thứ mà XMPP đã cung cấp, chẳng hạn như xác thực, mã hóa, giao thức ứng dụng, v.v. . Nhiều máy chủ XMPP cũng hỗ trợ phân cụm - minh bạch chạy nhiều máy chủ phía sau một miền duy nhất.

Cuối cùng lựa chọn là của bạn, vì bạn biết nhiều nhất về ứng dụng cụ thể của mình. Bạn nên so sánh các giải pháp không chỉ trên hiệu suất một nút mà còn cả thời gian phát triển và khả năng mở rộng giữa các yếu tố khác.

+0

Chắc chắn MattJ, bạn hoàn toàn đúng về khả năng mở rộng. Tuy nhiên, tôi cần biết sự khác nhau về hiệu năng giữa hai nền tảng. Xác thực, định tuyến .. chưa có trong danh sách ưu tiên hàng đầu của tôi. –

+0

Quan điểm của tôi là họ nên thế. Yêu cầu ứng dụng của bạn nên được quyết định ở phía trước và sau đó, các câu hỏi về hiệu suất về triển khai nên thực hiện sau. Bạn cũng sẽ biết sau đó có bao nhiêu vấn đề là Node.js + websocket có thể thiếu một số tính năng mà XMPP cung cấp. Nhưng nếu bạn cần các tính năng của XMPP, Google và Facebook là bằng chứng cho thấy nó có thể mở rộng thành công. – MattJ

+0

Tôi đã xem các tính năng mà xmpp cung cấp. Như tôi đã nói, hiệu suất và tổng số người dùng đồng thời trên mỗi máy là quan trọng hơn đối với tôi. –

1

Tôi đã xây dựng một vài dịch vụ trò chuyện với Node.js cho khách hàng và trong khi tôi có thể nói rằng dễ dàng để có được dịch vụ trò chuyện cơ bản chạy với Node.js, bạn có thể dành nhiều thời gian để phát minh lại bánh xe nếu bạn chọn đi tuyến đường này. Một máy chủ XMPP như eJabberd có rất nhiều chức năng tích hợp sẵn mà bạn sẽ không phải xây dựng lại. Xác thực, trò chuyện nhiều người dùng, kiểm duyệt (kick/ban/ignore), tùy chọn người dùng, ghi nhật ký, v.v.

Đối với các dự án tôi đã làm, eJabberd chắc chắn quá mức, vì họ chỉ cần những điều cơ bản, nhưng bạn nên cẩn thận xem xét trường hợp sử dụng của bạn bởi vì đưa ra quyết định.

Tôi đang nghĩ đến việc tạo một web client Node.js cho XMPP, để làm một cái gì đó giống như Campfire, nhưng với ejabberd là hậu phương. Tôi đã không thực sự cam kết làm điều này, nhưng tôi nghĩ rằng nó sẽ là một cách tốt đẹp để có được tốt nhất của cả hai thế giới.

1

Nó cũng phụ thuộc vào loại khách hàng mà bạn đang viết: khách hàng dựa trên trình duyệt sử dụng Bosh là XMPP qua HTTP, trong đó sử dụng phiếu dài (tương tự như sao chổi). Điều này tạo ra ít nhất một yêu cầu mỗi 30 giây (tùy thuộc vào cài đặt) từ mỗi máy khách, bắt đầu tăng lên sau khi bạn nhận được vài nghìn khách hàng. Tôi muốn được quan tâm để xem một so sánh về điều đó - có vẻ như ổ cắm web nên có một lợi thế ở đó.

+0

Tất nhiên, bây giờ bạn có thể sử dụng XMPP trên websockets và tận dụng tối đa cả hai thế giới. – Robin

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