2013-08-17 41 views

Trả lời

8

Websocket là một lớp trừu tượng khá mỏng trên đỉnh của ổ cắm TCP thông thường. Sau khi bắt tay ban đầu sự khác biệt là tối thiểu. Vì vậy, câu hỏi là: làm thế nào để tôi biết nếu một đoạn dữ liệu đã được nhận bởi các peer từ xa? Câu trả lời ngắn gọn: chỉ khi đồng nghiệp thừa nhận nó một cách rõ ràng bằng các phương thức của giao thức mức ứng dụng. Máy khách từ xa sẽ gửi các gói TCP ACK cho mọi gói dữ liệu bạn sẽ gửi, nhưng thực tế này cũng bị ẩn khỏi ứng dụng vì lý do chính đáng. Nhận gói ACK chỉ có nghĩa là ngăn xếp TCP từ xa đã xử lý nó, nhưng không nói gì về cách (và nếu) ứng dụng khách đã xử lý nó.

Thêm loại thông báo "xác nhận nhận" đặc biệt vào giao thức trò chuyện của bạn. Bao gồm số thứ tự tăng dần đơn điệu trong tất cả các thư gửi đi của bạn và bao gồm SN của thư đã nhận trong thư ACK để biết chính xác lượng dữ liệu mà khách hàng đã xử lý.

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