پرش به مطلب اصلی

KeepAliveClient

KeepAliveClient payload را با یک header سه‌بایتی قاب‌بندی می‌کند و روی هر line زنده ping داخلی می‌فرستد تا مسیر برای NAT، فایروال یا middleboxهای timeout محور فعال به نظر برسد. سمت مقابل آن باید KeepAliveServer باشد.

جایگاه رایج

TcpListener -> KeepAliveClient -> ... -> KeepAliveServer -> TcpConnector

نمونه تنظیم

{
"name": "ka-client",
"type": "KeepAliveClient",
"settings": {
"ping-interval": 60000
},
"next": "next-node"
}

قالب frame

هر frame با این ساختار فرستاده می‌شود:

  • دو بایت طول body به صورت big-endian
  • یک بایت نوع frame

نوع frame:

مقدارمعنی
1payload عادی
2ping
3pong

تنظیمات

گزینهتوضیح
ping-intervalفاصله ارسال ping به میلی‌ثانیه. پیش‌فرض نسخه فعلی 60000 است.

نکته‌ها

  • این نود باید به KeepAliveServer برسد؛ در غیر این صورت payload طرف مقابل معنی‌دار نخواهد بود.
  • ping/pongها توسط جفت KeepAlive مصرف می‌شوند و به نودهای بیرونی تحویل داده نمی‌شوند.
  • مقدار interval را خیلی کم نگذارید؛ در مسیرهای شلوغ باعث سربار می‌شود.