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

Nano ایک آسان استعمال، تیز رفتار، ہلکا پھلکا گیم سرور نیٹ ورکنگ لائبریری ہے جو Go کے لیے بنائی گئی ہے۔ یہ ایک بنیادی نیٹ ورک آرکیٹیکچر اور ٹولز و لائبریریوں کا مجموعہ فراہم کرتی ہے جو ڈویلپرز کو عام بنیادی منطق کے لیے دہرائے جانے والے کام سے بچانے میں مدد کرتی ہے۔ مقصد یہ ہے کہ نیٹ ورک سے متعلق دہرائی جانے والی پروگرامنگ پر وقت خرچ کرنے کی ضرورت کو ختم کر کے ترقیاتی کارکردگی کو بہتر بنایا جائے۔ Nano ہر سائز کی سرور سائیڈ ایپلیکیشنز جیسے ریئل ٹائم گیمز، سوشل گیمز، موبائل گیمز وغیرہ کے لیے ڈیزائن کیا گیا ہے۔ ## Nano کے ساتھ سسٹم کیسے بنائیں ایک Nano ایپلیکیشن اجزاء کا مجموعہ ہے، اور ایک جزو ہینڈلرز کا بنڈل ہے۔ ایک بار جب آپ Nano میں کوئی جزو رجسٹر کرتے ہیں، تو یہ ان تمام میتھڈز کو رجسٹر کرتا ہے جنہیں ہینڈلرز میں تبدیل کیا جا سکتا ہے، Nano سروس کنٹینر میں۔ سروسز تک `Component.Handler` کے ذریعے رسائی حاصل کی جاتی ہے، اور جب کوئی کلائنٹ درخواست کرتا ہے تو ہینڈلر کو کال کیا جاتا ہے۔ ہینڈلر پیغام کو سنبھالتے وقت دو پیرامیٹرز وصول کرتا ہے: - `*session.Session`: اس کلائنٹ کے مطابق جو یہ درخواست یا نوٹیفکیشن بھیجتا ہے۔ - `*protocol.FooBar`: درخواست کا پے لوڈ۔ منطق پر کارروائی کے بعد، آپ `session.Response(payload)` اور `session.Push('eventName', payload)` کے ذریعے کلائنٹ کو جواب یا پیغام بھیج سکتے ہیں، یا غیر متوقع ڈیٹا موصول ہونے پر خرابی واپس کر سکتے ہیں۔ Nano میں ایک بلٹ ان تقسیم شدہ نظام کا حل شامل ہے، جس سے تقسیم شدہ گیم سرورز بنانا آسان ہو جاتا ہے۔ examples/cluster ڈائریکٹری میں تقسیم شدہ چیٹ ڈیمو دیکھیں۔ آپ Nano ایپلیکیشنز کے ایک گروپ کو ایجنٹس کے طور پر شروع کر سکتے ہیں تاکہ پیغامات بیک اینڈ سرورز کو بھیجے جا سکیں۔ غیر متزامن کاموں کے لیے، Nano `nano.Invoke` فراہم کرتا ہے تاکہ نتائج کو مرکزی منطقی گوروٹین میں سنبھالا جا سکے، جیسا کہ مثال میں دکھایا گیا ہے۔ ## دستاویزات - انگریزی: شروع کریں، روٹ کمپریشن، مواصلاتی پروٹوکول، ڈیزائن پیٹرنز، API حوالہ (سرور)، Lua انٹیگریشن (نامکمل)۔ - 简体中文: 如何构建你的第一个nano应用, 路由压缩, 通信协议, API参考(服务器), 如何将lua脚本集成到nano组件中(未完成). ## وسائل - JavaScript کلائنٹس: nano-websocket-client, nano-egret-client۔ - TypeScript/cocos-creator: nano-client-ts۔ - ڈیموز: 100 لائنوں میں چیٹ روم، ٹیڈپول ڈیمو، اور ایک مکمل Sichuan Mahjong پروجیکٹ (nanoserver)۔ ## کمیونٹی - QQ گروپ بھرا ہوا ہے؛ WeChat `gsw_945` کے ذریعے رابطہ کریں (نوٹ `nano加群`)۔ - Reddit: nanolabs۔ ## کامیاب کیسز - 空来血战 (fir.im/tios)۔ ## Go ورژن > go1.8 ## انسٹالیشن ```bash go get github.com/lonng/nano # dependencies go get -u github.com/pingcap/check go get -u github.com/pingcap/errors go get -u github.com/urfave/cli go get -u google.golang.org/protobuf/proto go get -u github.com/gorilla/websocket go get -u google.golang.org/grpc ``` ## Protocol Buffers https://github.com/protocolbuffers/protobuf/releases سے protoc ڈاؤن لوڈ کریں، پھر protoc-gen-go اور protoc-gen-go-grpc، اور delve انسٹال کریں۔ ## ٹیسٹ ```bash go test -v ./... ``` ## بینچ مارک مثال: Windows 10 پر PingPong، i5-6500 3.2GHz 4 Core/1000-Concurrent => IOPS 11W (اوسط)۔ `cd ./benchmark/io && go test -v -tags "benchmark"` کے ساتھ چلائیں۔ ## لائسنس MIT License۔