Tôi đã có trải nghiệm rất tốt với NodeJS và Socket.IO trong 8 tháng qua. Các thành phần phía máy chủ đã được rất ổn định cho tôi - Tôi có thể để nó chạy với một khối lượng tin nhắn rất cao và bộ nhớ cư dân của nó không bao giờ thực sự chồi trên 20MB. Cho đến nay tôi chỉ có thể để nó chạy trong khoảng 4 tuần mà không chấm dứt máy chủ, nhưng đó chỉ là vì tôi cần cập nhật mã phía máy chủ của tôi.
Trình duyệt dường như không có trình duyệt, sử dụng thẻ web HTML5 hoặc COMET khi có sẵn. Lựa chọn vận chuyển nên ẩn với lớp ứng dụng. Tôi không quan tâm về các trình duyệt cổ (IE6)
Cung cấp một xuất bản/đăng ký ẩn dụ với trọng tải tùy ý
Socket.IO cũng là một mảnh tuyệt vời của phần mềm. Nó dưới sự phát triển tích cực, và có một phong cách pub/sub trừu tượng đơn giản được xây dựng trong việc sử dụng các ngữ nghĩa EventEmitter (NodeJS) của 'on' (đăng ký) và 'emit' (xuất bản). Nó cũng rất minh bạch ở phía khách hàng về việc vận chuyển đang được sử dụng. Tôi đã sử dụng nó chủ yếu cho sự hỗ trợ WebSocket thẳng lên, nhưng nó có thể quay trở lại các ổ cắm Flash, xhr-polling và jsonp polling.
truy cập khách hàng từ cả hai javascript và hệ thống server-side (ví dụ: trong php/python/ruby) - điều này là rất quan trọng
NodeJS là JavaScript, chạy trên động cơ V8. Nó có một tấn của 3rd party modules cung cấp abstractions tốt đẹp cũng như interfacing với các thành phần bên ngoài, chẳng hạn như một cơ sở dữ liệu hoặc hàng đợi tin nhắn, trong số nhiều thứ khác. Theo như nhấn hệ thống với php/python/ruby, nó sẽ làm việc như với đánh bất kỳ máy chủ khác.Chọn phương thức giao tiếp của bạn (TCP/IP cơ bản, hoặc có thể là HTTP POST hoặc GET, hoặc thậm chí thông qua hệ thống tập tin) và NodeJS không thực sự quan tâm đến việc ai đang cung cấp dữ liệu. Cá nhân, tôi đã thực hiện một C# khách hàng đó là làm việc tuyệt vời.
Cho phép khách hàng để xem những gì khách hàng khác được kết nối với một kênh, tức là sự hiện diện
Nó không không có bất kỳ xây dựng trong logic 'hiện diện', mặc dù với việc xây dựng trong 'pub/sub 'logic đã có sẵn trong Socket.IO, tất cả những gì bạn phải làm là lưu trữ trạng thái trên máy chủ để máy khách mới có thể truy xuất dữ liệu hiện diện hiện có. Tôi đã triển khai pub/sub cơ bản của riêng mình trên máy chủ lưu giữ trạng thái và tất cả cùng nhau (bao gồm mã máy chủ NodeJS và các sơ đồ Socket.IO cơ bản) chỉ có 50 dòng JavaScript (bao gồm khoảng trắng).
kiểm soát truy cập Fine-grained qua callbacks cho bất kỳ ứng dụng web (tốt đẹp để có)
Không chắc chắn những gì bạn có nghĩa là bằng cách 'kiểm soát truy cập Fine-grained qua callbacks cho bất kỳ ứng dụng web (tốt đẹp để có) '. Pub/sub event/obsaphor ẩn dụ họ đã sử dụng gọi lại, vì vậy bạn móc các hành động cụ thể cho các sự kiện cụ thể.
Làm xác thực?
Tôi không cần, nhưng, để làm bất kỳ xác thực nào cho hệ thống của chúng tôi, vì vậy tôi không thể nói trực tiếp với nó. Tuy nhiên, nếu bạn duyệt các mô-đun NodeJS bạn sẽ thấy có nhiều mô-đun auth sẵn có, bao gồm LDAP và OAuth, chưa kể đến one module tuyên bố làm "OpenId, Google, OAuth, Twitter, LinkedIn, Yahoo, dễ đọc, Dropbox, Justin .tv, Vimeo, Tumblr, OAuth2, Facebook, GitHub, Instagram, Foursquare, Box.net, LDAP "
Nguồn mở sẽ tốt đẹp, như PHP & Python khách hàng, nhưng nếu không điều này có vẻ là những gì tôi đang tìm kiếm. Cảm ơn! – Leopd