इस प्रोजेक्ट के बारे में

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` प्रदान करता है, जैसा कि उदाहरण में दिखाया गया है। ## दस्तावेज़ - अंग्रेज़ी: get started, route compression, communication protocol, design patterns, API reference (server), Lua integration (अपूर्ण)। - 简体中文: 如何构建你的第一个nano应用, 路由压缩, 通信协议, API参考(服务器), 如何将lua脚本集成到nano组件中(未完成)। ## संसाधन - JavaScript क्लाइंट: nano-websocket-client, nano-egret-client। - TypeScript/cocos-creator: nano-client-ts। - डेमो: 100 पंक्तियों में चैट रूम, tadpole डेमो, और एक पूर्ण 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, i5-6500 3.2GHz 4 Core/1000-Concurrent पर PingPong => IOPS 11W (औसत)। `cd ./benchmark/io && go test -v -tags "benchmark"` के साथ चलाएँ। ## लाइसेंस MIT License।