Tôi muốn đẩy dữ liệu đến người dùng sau mỗi 2 phút. Sử dụng EventSource yêu cầu bổ sung đẩy null-byte mỗi 29 giây để giữ cho kết nối mở. WebSocket không yêu cầu ping như vậy. Tại sao kết nối EventSource thường xuyên đóng và mở lại? Có phải vì không có cách tích hợp sẵn trong HTTP để kiểm tra xem kết nối vẫn mở hay lý do khác?Tại sao kết nối EventSource đóng mỗi 30-60 giây khi không có dữ liệu được vận chuyển, trong khi WebSocket được giữ mở?
Trả lời
API sự kiện được gửi máy chủ (API sự kiện) được xếp lớp trên HTTP. WebSocket được xếp lớp trên TCP (nhưng có một cái bắt tay tương thích HTTP). Cả HTTP và TCP thường có thời gian chờ nhàn rỗi tuy nhiên, thời gian chờ TCP có xu hướng dài hơn nhiều (ví dụ: 2 giờ thay vì 2 phút). Vì vậy, bạn vẫn có thể cần thư còn sống trong WebSockets, nhưng chúng có thể ít thường xuyên hơn nhiều. Ngoài ra, WebSocket standard định nghĩa các khung ping/pong mà trình duyệt/máy chủ có thể thực hiện để thực hiện việc này cho bạn.
nó có thể phụ thuộc vào phần mềm phía máy chủ của bạn
Node.js có 2 phút mặc định thời gian chờ
đây là bài viết về nó - http://contourline.wordpress.com/2011/03/30/preventing-server-timeout-in-node-js/
giải pháp:
res.connection.setTimeout(0); // this could take a while
- 1. WebSocket kết nối không được đóng bằng SocketRocket
- 2. Xmlhttprequest có giữ kết nối mở sau khi yêu cầu đã được xử lý không?
- 3. Tại sao luôn đóng kết nối Cơ sở dữ liệu?
- 4. Kết nối cơ sở dữ liệu CodeIgniter không được đóng
- 5. ODP.net có đóng con trỏ khi kết nối đóng không?
- 6. "WebSocket bị đóng trước khi kết nối được thiết lập" nghĩa là gì?
- 7. InvalidOperationException Kết nối không được đóng. Trạng thái hiện tại của kết nối đang mở
- 8. Giữ mở một kết nối cơ sở dữ liệu MongoDB
- 9. Khi nào Entity Framework mở và đóng các kết nối cơ sở dữ liệu?
- 10. ResultSet không đóng khi kết nối đóng?
- 11. Tại sao dữ liệu không được chuyển sang tệp khi thoát khỏi quá trình?
- 12. Có thể nào để xác thực người dùng khi kết nối websocket được sử dụng?
- 13. WebSocket Tornado đóng mỗi phút một lần
- 14. DataAdapter.Fill() có đóng kết nối khi ngoại lệ được ném không?
- 15. Tại sao một số kết nối mysql chọn dữ liệu cũ cơ sở dữ liệu mysql sau khi xóa + chèn?
- 16. Giới thiệu iCloud trong các ứng dụng CoreData sau khi được vận chuyển, cách di chuyển dữ liệu cũ
- 17. Tại sao không recv chặn cho đến khi nó nhận được tất cả dữ liệu?
- 18. Khi nào đóng kết nối cơ sở dữ liệu MongoDB trong Nodejs
- 19. Phát hiện khi CodeIgniter không kết nối được với Db
- 20. Nhiều kết nối websocket
- 21. Mongoose Model.find() treo khi không được kết nối với cơ sở dữ liệu
- 22. Làm cách nào để giữ một Kết nối mở khi thực hiện nhiều truy vấn?
- 23. Biểu mẫu đóng khi không được
- 24. JSS HTML5 WebSocket: Kết nối không có cuộc gọi HTTP
- 25. Kết nối PDO không được đóng khi phpunit đang chạy với symfony 2.X
- 26. Mở lại kết nối cơ sở dữ liệu trong Java
- 27. Tại sao tôi cần xóa hồ bơi kết nối mỗi khi tôi triển khai lại?
- 28. Mở và đóng kết nối cơ sở dữ liệu bên trong giao dịch
- 29. psycopg2 với bình, khi đóng kết nối
- 30. Việc đóng kết nối cơ sở dữ liệu trong phương thức Vứt bỏ có đúng không?