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:
| مقدار | معنی |
|---|---|
1 | payload عادی |
2 | ping |
3 | pong |
تنظیمات
| گزینه | توضیح |
|---|---|
ping-interval | فاصله ارسال ping به میلیثانیه. پیشفرض نسخه فعلی 60000 است. |
نکتهها
- این نود باید به
KeepAliveServerبرسد؛ در غیر این صورت payload طرف مقابل معنیدار نخواهد بود. - ping/pongها توسط جفت KeepAlive مصرف میشوند و به نودهای بیرونی تحویل داده نمیشوند.
- مقدار interval را خیلی کم نگذارید؛ در مسیرهای شلوغ باعث سربار میشود.