Nếu tôi có kết nối websocket mở giữa máy chủ và máy khách, có đúng là không có dữ liệu hoặc băng thông nào được sử dụng hoặc trao đổi giữa hai ngoại trừ khi tôi gửi một số? Và nếu đó là sự thật, điều đó có nghĩa là tôi có thể có hàng nghìn kết nối mở trên một máy chủ tại một thời điểm miễn là dữ liệu chỉ được chuyển rất thường xuyên?Các máy chủ web mở có sử dụng băng thông hoặc các tài nguyên khác không?
8
A
Trả lời
3
Về mặt kỹ thuật, có. Mặc dù giao thức WebSocket có khung ping/pong, và bất kỳ của hai đầu có thể gửi ping định kỳ và mong đợi pongs như câu trả lời, nếu không thì sẽ giết kết nối.
Sẽ là một ý tưởng tồi tệ nếu bạn không triển khai cơ chế "tiếp tục sống", bạn sẽ không thể biết được kết nối nào thực sự được kết nối hoặc đóng không đúng cách.
http://blog.stephencleary.com/2009/05/detection-of-half-open-dropped.html
Các vấn đề liên quan
- 1. Luồng OAuth2 từ máy chủ tài nguyên đến một máy chủ tài nguyên khác
- 2. Chức năng ngủ sử dụng tài nguyên máy chủ?
- 3. Tài nguyên nào nên theo dõi trên máy chủ Linux đang chạy máy chủ web hoặc cơ sở dữ liệu
- 4. IIS có phải là máy chủ web hoặc máy chủ ứng dụng không?
- 5. Có thể sử dụng AWS làm máy chủ web không?
- 6. Restlet tài nguyên máy chủ với các thông số cần thiết constructor
- 7. máy chủ web python và các tác vụ định kỳ
- 8. Trình duyệt web có sử dụng các số cổng khác nhau cho các tab đang mở không?
- 9. Băng thông máy chủ ga bằng phần trăm sử dụng Netty
- 10. Sử dụng Django trừ máy chủ web
- 11. Sự khác biệt giữa các máy chủ ứng dụng .NET và máy chủ ứng dụng Java
- 12. Khi thêm tài nguyên vào máy chủ Tomcat trong Eclipse, tài nguyên có thể là gì?
- 13. Có thể sử dụng Apache Thrift trên máy chủ web thông thường không?
- 14. Cách truyền tệp bằng curl từ máy chủ này sang máy chủ khác (tài nguyên máy chủ giới hạn)
- 15. Tài nguyên và khách hàng Boto3 có tương đương không? Khi sử dụng một hoặc khác?
- 16. Sử dụng các tài nguyên khác nhau cho các ứng dụng khác nhau bằng cách sử dụng gradle
- 17. WEBrick: RequestURITooLớn: tôi có nên cập nhật hoặc sử dụng một máy chủ khác không?
- 18. Sử dụng tài nguyên có thông báo lỗi trong mvc
- 19. Máy chủ Web không thể tìm thấy tài nguyên được yêu cầu
- 20. Các cột Nhận dạng Máy chủ SQL với NHibernate - để sử dụng hoặc không sử dụng
- 21. Chế độ tài liệu IE có các giá trị mặc định khác nhau trên các máy chủ khác nhau
- 22. Vẽ bitmap từ các tài nguyên khác
- 23. Máy chủ web nguồn mở tối thiểu?
- 24. Plugin nguyên mẫu Maven không cho phép. Tài nguyên trong các tài nguyên mẫu thông qua
- 25. Cách sử dụng Link_to với các tài nguyên lồng nhau
- 26. OAuth 2: tách máy chủ tài nguyên và máy chủ ủy quyền
- 27. Sử dụng các tệp tài nguyên (.resx) trong javascript
- 28. Có chi phí máy chủ để sử dụng WebSockets không?
- 29. C# máy chủ comet đóng băng IIS
- 30. Có thể giám sát việc sử dụng tài nguyên Amazon S3 thông qua ứng dụng Ruby on Rails không?
Một số người trong chúng ta tin rằng keepalives là một mụn cóc lớn trên TCP, làm cho nó không cần thiết mong manh trên băng thông thấp, các liên kết có độ tin cậy thấp (_e.g._, thông tin liên lạc vệ tinh nghiệp dư). –
Đừng quên các tài nguyên không phải băng thông. Trên hầu hết các hệ thống, một kết nối TCP mở (_e.g._, một WebSocket) tiêu thụ nhiều tài nguyên giới hạn, ngay cả khi không có lưu lượng gói. Bộ nhớ đệm và khối điều khiển kết nối là phổ biến nhất, nhưng trong một số hệ thống, số cổng cũng có. –
Ping/pong khung có thể là nhỏ như hai byte, và để có hàng ngàn kết nối với hoạt động nhỏ không phải là vấn đề cho bất kỳ máy tính hiện đại. Tôi làm thử nghiệm hiệu suất với hàng ngàn người trong số họ trên máy tính xách tay của tôi là máy chủ. Vì thiết bị di động có thể mất kết nối mà không đóng đúng kết nối, nên có cơ chế duy trì hoạt động. – vtortola