منصوبے کے بارے میں

MagicOnion ایک متحد ریئل ٹائم/API فریم ورک ہے جو .NET پلیٹ فارم اور Unity کے لیے Cysharp نے تیار کیا ہے۔ یہ RPC طرز کی سروس کالز اور دو طرفہ ریئل ٹائم کمیونیکیشن کو ایک ہی فریم ورک میں یکجا کرتا ہے۔ اس کے بنیادی حصے میں، MagicOnion gRPC پر مبنی ہے، جو HTTP/2 پر تیز، کمپیکٹ بائنری ٹرانسپورٹ فراہم کرتا ہے۔ تاہم، عام gRPC کے برعکس، یہ C# انٹرفیس کو پروٹوکول اسکیما کے طور پر مانتا ہے۔ اس کا مطلب ہے کہ ڈویلپرز سرور اور کلائنٹ پروجیکٹس کے درمیان سروس انٹرفیس براہ راست شیئر کر سکتے ہیں بغیر `.proto` (پروٹوکول بفرز IDL) فائلیں لکھنے یا برقرار رکھنے کے۔ انٹرفیس API تعریف اور اسکیما دونوں کے طور پر کام کرتے ہیں، لہذا وہی C# کوڈ دونوں طرف معاہدے کی وضاحت کرتا ہے۔ فریم ورک دو اہم استعمال کے نمونوں کا احاطہ کرتا ہے۔ پہلا unary RPC خدمات ہیں، جو gRPC، WCF، یا ASP.NET Core Web API کے مشابہ ہیں۔ سروس کے طریقے `UnaryResult<T>` یا `UnaryResult` لوٹاتے ہیں اور غیر متزامن سمجھے جاتے ہیں۔ دوسرا StreamingHub ہے، ایک ریئل ٹائم کمیونیکیشن سروس جو سرور کو متعدد منسلک کلائنٹس کو ڈیٹا نشر کرنے کی اجازت دیتی ہے، جو SignalR، Socket.io، Photon، یا UNet کے کردار میں مشابہ ہے۔ یہ دونوں خصوصیات ایک ہی ایپلیکیشن میں آزادانہ یا مشترکہ طور پر استعمال کی جا سکتی ہیں۔ پروجیکٹ کے بیان کردہ عام استعمال کے معاملات میں مائیکرو سروسز RPC، متنوع کلائنٹس کو نشانہ بنانے والی API خدمات جیسے Windows WPF ایپلیکیشنز، Unity گیمز، iOS/Android کے لیے .NET، اور .NET MAUI، نیز گیمز اور انٹرایکٹو ایپس کے لیے دو طرفہ ریئل ٹائم کمیونیکیشن شامل ہیں۔ پلیٹ فارم سپورٹ وسیع ہے۔ سرور کی طرف .NET 8 یا اس سے نیا درکار ہے۔ کلائنٹ کی طرف .NET 8+، .NET Standard 2.1 اور 2.0، .NET Framework 4.6.1 سے .NET 8 تک، اور Unity 2022.3 LTS یا نیا Windows، macOS، iOS، اور Android پر سپورٹ کرتا ہے، جس میں IL2CPP اور Mono اسکرپٹنگ بیک اینڈ دونوں شامل ہیں۔ شروع کرنے میں ASP.NET Core پروجیکٹ میں `MagicOnion.Server` NuGet پیکج شامل کرنا، `AddMagicOnion()` کے ساتھ سروس رجسٹر کرنا اور `MapMagicOnionService()` کے ساتھ میپ کرنا شامل ہے۔ `IService<T>` سے ماخوذ ایک مشترکہ انٹرفیس معاہدے کی وضاحت کرتا ہے، اور ایک نفاذ کلاس `ServiceBase<T>` اور انٹرفیس سے وراثت حاصل کرتی ہے۔ کلائنٹ پر، `MagicOnion.Client` پیکج gRPC چینل اور `MagicOnionClient.Create<T>()` کے ذریعے پراکسی بنانے کے لیے استعمال ہوتا ہے، جس کے بعد سروس کے طریقے شفاف طریقے سے بلائے جا سکتے ہیں۔ دستاویزات انگریزی اور جاپانی دونوں میں دستیاب ہیں۔ لائبریری MIT لائسنس کے تحت جاری کی گئی ہے۔