تكرار السؤال: …
الإجابة المختصرة
يعيد استخدام نفس اتصالات TCP القائمة بدلاً من فتح اتصال ومصافحة جديدة مع كل طلب، مما يقلل زمن الاستجابة واستهلاك منافذ الشبكة بشكل ضخم.
الشرح
افتراضياً في الإصدارات القديمة (وقبل Node.js 19)، كان كائن http.Agent ينشئ اتصال TCP جديداً لكل طلب ويغلقه فوراً. تفعيل { keepAlive: true } يبقي الاتصال مفتوحاً لاستخدامه في الطلبات اللاحقة لنفس الخادم، مما يوفر وقت الـ DNS Resolution، والـ TCP Handshake، ومصافحة TLS البطيئة.
مثال بالكود
import http from "node:http";
const agent = new http.Agent({ keepAlive: true, maxSockets: 50 });
http.get("http://api.internal/data", { agent });أخطاء شائعة
- عدم تحديد حد أقصى للاتصالات (maxSockets) مما قد يستنزف موارد الخادم البعيد.