2012-04-26 31 views
30

Cái nào tốt hơn: Socket.IO hoặc SockJS và sự khác biệt lớn nhất là gì?SockJS hoặc Socket.IO? Giá trị để recode trang dựa trên ajax?

Làm cách nào để xây dựng lại trang dựa trên ajax hoàn toàn thành trang dựa trên nút.JS/socket.io? Tôi có phải recode hoàn toàn tất cả mọi thứ? Có hướng dẫn nào tốt về cách thực hiện việc này không? Nó có đáng để làm điều đó (theo ý kiến ​​của bạn)?

+0

Bạn không nên chỉ đơn giản là thay đổi tất cả kéo để PUSHs. Có một lý do mà cả hai tồn tại. Chỉ sử dụng nội dung đẩy nếu cần thiết hoặc hữu ích cho trải nghiệm người dùng. – Alp

+0

Cố gắng chia nhỏ các câu hỏi của bạn và làm cho chúng ít 'khách quan' hơn. Có thể hiển thị bất kỳ nghiên cứu nào về chủ đề bạn đã thực hiện (đây là để tránh vấn đề của bạn bị đóng là không xây dựng) – rlemon

+3

Có một chủ đề về sự khác biệt giữa SockJS và Socket.io trên danh sách gửi thư sockjs, có thể nó sẽ giúp: https://groups.google.com/forum/#!topic/sockjs/lgzxVnlth54/discussion – Marek

Trả lời

18

SockJS có nhiều tùy chọn phía máy chủ hơn. Nếu bạn không muốn bị ràng buộc với Node.js, thì đó có thể là một tùy chọn. Việc chia tỷ lệ dường như hoạt động tốt nhất, từ một số điểm chuẩn sử dụng PyPy để lưu trữ phần phía máy chủ.

socket.io có nhiều tùy chọn vận chuyển hơn, bao gồm Flash. Ngay cả khi bạn không thích đèn flash, nó vẫn có tùy chọn cho vận chuyển thực sự WebSocket, có thể hoạt động tốt hơn tùy thuộc vào yêu cầu triển khai của bạn.

Thực tế là, hoặc sẽ nhận được công việc làm, nó chỉ phụ thuộc vào mong muốn của bạn. Tôi khuyên bạn nên tạo một ứng dụng tầm thường trong mỗi ứng dụng và xem liệu API của một người có cảm thấy tự nhiên hơn với bạn hay không.

Cá nhân, tôi nghiêng nhiều hơn để sử dụng socket.io ... Tôi cũng sẽ nói rằng nếu bạn cần mở rộng bằng cách sử dụng các cụm, có thể bạn cũng cần phải vạch ra một chiến lược để sử dụng máy chủ/máy chủ phụ (chẳng hạn như redis) vì các yêu cầu khác nhau có thể đến các quy trình khác nhau không chia sẻ trạng thái bộ nhớ.


Cũng đáng chú ý, là có một khuôn khổ tương tự cho Net gọi SignalR ...

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