𝗖𝗿𝗲𝗮𝘁𝗶𝗻𝗴 𝗮𝗻𝗱 𝗥𝘂𝗻𝗻𝗶𝗻𝗴 𝗮 𝗦𝗲𝗿𝘃𝗲𝗿

سرور آپ کی ویب ایپلی کیشن کا دل ہوتا ہے۔ Hyperlane انہیں بنانا اور مینیج کرنا آسان بناتا ہے۔ آپ اپنی ضروریات کے مطابق رفتار اور کنٹرول میں سے کسی ایک کا انتخاب کر سکتے ہیں۔

سرور بنانے کے تین طریقے:

• فوری سیٹ اپ کے لیے Server::default() کا استعمال کریں۔ یہ ٹیسٹنگ یا سادہ ایپس کے لیے بہترین ہے۔ یہ ایڈریسز اور لمٹس کے لیے پہلے سے طے شدہ سیٹنگز استعمال کرتا ہے۔ • مکمل کنٹرول کے لیے ServerConfig کا استعمال کریں۔ یہ آپ کو بائنڈ ایڈریس، TCP آپشنز، یا TTL تبدیل کرنے کی اجازت دیتا ہے۔ • ریکویسٹ کی تفصیلات کو مینیج کرنے کے لیے RequestConfig کا استعمال کریں۔ یہ بفر سائز اور ٹائم آؤٹ کو ایڈجسٹ کرنے کے لیے بہترین ہے۔

لائف سائیکل (lifecycle) کو مینیج کرنا:

جب آپ run() میتھڈ کے ذریعے سرور شروع کرتے ہیں، تو آپ کو ایک ServerControlHook ملتا ہے۔ یہ ٹول آپ کو دو اہم آپشنز فراہم کرتا ہے:

  • wait(): یہ سرور کو تب تک چلتا رکھتا ہے جب تک آپ اسے روک نہ دیں۔ پروگرام کو ختم ہونے سے روکنے کے لیے اسے اپنے مین فنکشن کے آخر میں استعمال کریں۔
  • shutdown(): یہ سرور کو باوقار طریقے سے (gracefully) روک دیتا ہے۔ یہ بند ہونے سے پہلے موجودہ ریکویسٹس کو مکمل کر لیتا ہے۔ یہ پروڈکشن میں ڈیٹا کے نقصان کو روکتا ہے۔

ایڈوانسڈ آپشنز:

Hyperlane کوڈ کو سادہ بنانے کے لیے attribute macros کا استعمال کرتا ہے۔ آپ سرور ویری ایبلز کو براہ راست اپنے فنکشنز میں شامل کر سکتے ہیں۔ یہ آپ کے سیٹ اپ کو زیادہ صاف ستھرا اور ڈیکلیریٹیو (declarative) بناتا ہے۔

آپ ایک وقت میں متعدد سرورز بھی چلا سکتے ہیں۔ مختلف پورٹس پر مختلف ایپس چلانے کے لیے Tokio کا استعمال کریں۔ یہ ان کاموں کے لیے بہترین ہے:

  • الگ الگ پورٹس پر HTTP اور HTTPS چلانا۔
  • مختلف API ورژنز فراہم کرنا۔
  • ایک ہی پروسیس میں مائیکرو سروسز کو ہوسٹ کرنا۔
  • مین ایپس کو ہیلتھ چیکس (health checks) سے الگ کرنا۔

سرور شروع کرتے وقت ہمیشہ ایررز (errors) کو ہینڈل کریں۔ عام مسائل میں مصروف پورٹس یا پرمیشن ایررز شامل ہیں۔ یہ یقینی بنانے کے لیے کہ آپ کی ایپلی کیشن مستحکم رہے، اپنے نتائج چیک کریں۔

Project Code: https://github.com/hyperlane-dev/hyperlane Source: https://dev.to/tengxgfyrz67s/creating-and-running-a-server-5ama