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

Provisioning و اتصال Cloud گیت‌وی

Physical Gateway ابتدا مانند یک Device واقعی AirNgin Provision می‌شود. سرور Credentialهای کامل را صادر می‌کند و Firmware باید آن‌ها را Persist و Reuse کند.

Credentialهای Server-issued

  • projectCode
  • DeviceSerial
  • MQTT Username
  • MQTT Password
  • MQTT ClientId
  • encryptionKey
  • Broker information

ClientId یک مقدار opaque است. Backend ممکن است آن را با Metadataهای داخلی بسازد، اما Firmware نباید Prefix یا bucketCode را Parse یا بازسازی کند.

Brokerها

Primary:  mqtt.airngin.com
Fallback: mqtt.airngin.ir

پورت‌های اصلی MQTT پلتفرم:

1883  MQTT
8883 MQTT over TLS
8443 WSS: wss://webapp.airngin.com:8443/mqtt

Reconnect

  • KeepAlive: 30s
  • Socket timeout: 15s
  • سه تلاش روی Primary، سپس Fallback
  • بعد از Fail طولانی، Retry دوره‌ای از Primary
  • reconnect باید non-blocking باشد
  • Subscriptionها بعد از اتصال مجدد restore شوند
  • قطع شبکه نباید Credential معتبر را پاک کند

چه زمانی Reprovision لازم است؟

  • Credential وجود ندارد
  • Factory Reset آن را پاک کرده است
  • Project identity عوض یا invalidate شده است
  • Broker/Server به‌صورت قطعی Authentication را رد کرده است

DNS failure، Router change، اینترنت قطع، یا Broker timeout به‌تنهایی دلیل Reprovision نیستند.

ClientId

از دید Firmware تنها قانون این است:

receive complete ClientId from server
→ persist exactly
→ reuse exactly

از روی DeviceSerial، MAC، Chip ID یا Random value ClientId جدید نسازید.