Hôm nay mình vừa thực hiện một số cải tiến đáng kể cho thư viện socket của skynet nhằm tối ưu hóa khả năng kết nối và xử lý dữ liệu. Mục tiêu ban đầu là để thử truy cập một API HTTP bên ngoài từ hệ thống skynet, qua đó phát hiện ra một số hạn chế trong phiên bản socket mới viết gần đây.
Trong quá trình kiểm thử, mình gặp phải vấn đề khi URL dùng để test bị chặn (firewall). Sự cố này đã phơi bày điểm yếu của hàm connect hiện tại đang hoạt động ở chế độ blocking. Khi xảy ra tình trạng kết nối đến server không ổn định, toàn bộ tiến trình có thể bị treo trong thời gian dài. Để khắc phục, mình đã dành thời gian chuyển đổi cơ chế connect sang dạng non-blocking. Đây là một kỹ thuật tương đối phức tạp do bản chất bất đồng bộ của nó, đặc biệt với những ai chưa từng xử lý trường hợp này trước đây. Mình đã tham khảo một số tài liệu kỹ thuật tiêu chuẩn để triển khai, nhưng vẫn rất mong nhận được sự phản hồi từ các bạn có kinh nghiệm sâu hơn về skynet để review patch mới này trước khi chính thức áp dụng.