Tôi đang sử dụng Dart 1.8.5 trên máy chủ. Tôi muốn triển khai TCP Socket Server lắng nghe các kết nối đến, gửi một số dữ liệu tới mọi máy khách và dừng để tạo dữ liệu khi máy khách ngắt kết nối.Làm cách nào để xử lý ngắt kết nối trong Dart?
Đây là mẫu mã
void main() {
ServerSocket.bind(
InternetAddress.ANY_IP_V4,
9000).then((ServerSocket server) {
runZoned(() {
server.listen(handleClient);
}, onError: (e) {
print('Server error: $e');
});
});
}
void handleClient(Socket client) {
client.done.then((_) {
print('Stop sending');
});
print('Send data');
}
Mã này chấp nhận kết nối và in "Gửi dữ liệu". Nhưng nó sẽ không bao giờ in "Dừng gửi" ngay cả khi khách hàng đã biến mất.
Câu hỏi đặt ra là: cách thu hút khách hàng ngắt kết nối trong trình nghe?
Đối với tôi, điều này giống như một lỗi. Vui lòng tạo sự cố tại http://dartbug.com –
https://code.google.com/p/dart/issues/detail?id=22583 – lig
Bạn có thể xem ví dụ trong câu trả lời của tôi. Nó hiển thị 'Ngừng gửi' và trong các detals giải phóng vấn đề được tìm thấy trong SDK Dart. – mezoni