ब्लॉग पर वापस
Tutorial3 मिनट पढ़ें

FiveM एक्सपोर्ट्स और इवेंट्स: इंटर-रिसोर्स कम्युनिकेशन

Master FiveM एक्सपोर्ट्स, इवेंट्स और ट्रिगर्स। रिसोर्सेज के बीच साफ API बनाएं, खराब पैटर्न से बचें और टॉप ओपन-सोर्स स्क्रिप्ट्स के उदाहरणों का पालन करें।

Agency Scripts

Agency Scripts के संस्थापक और प्रमुख डेवलपर

इवेंट्स बनाम एक्सपोर्ट्स: कब किसका उपयोग करें

FiveM दो प्राथमिक तंत्र प्रदान करता है इंटर-रिसोर्स संचार के लिए: इवेंट्स और एक्सपोर्ट्स। इवेंट्स असिंक्रोनस और फायर-एंड-फॉरगेट होते हैं, जो सूचनाओं, लॉगिंग, और संसाधनों के बीच साइड इफेक्ट ट्रिगर करने के लिए आदर्श हैं। एक्सपोर्ट्स, दूसरी ओर, सिंक्रोनस फंक्शन कॉल हैं जो तुरंत मान लौटाते हैं, जो डेटा पुनःप्राप्ति और उपयोगिता कार्यों के लिए उपयुक्त हैं। प्रत्येक उपयोग के लिए सही तंत्र चुनना साफ, मेंटेन करने योग्य FiveM कोड लिखने के लिए मूलभूत है।

सर्वर और क्लाइंट इवेंट्स

FiveM में इवेंट्स विशिष्ट दिशाओं में प्रवाहित होते हैं। TriggerServerEvent डेटा क्लाइंट से सर्वर को भेजता है, जहां इसे सुरक्षित रूप से संभाला जा सकता है। TriggerClientEvent डेटा सर्वर से एक या सभी क्लाइंट्स को खिलाड़ी स्रोत पहचानकर्ता या -1 प्रसारण के लिए। स्थानीय घटनाएं ट्रिगर की जाती हैं TriggerEvent एक ही निष्पादन संदर्भ के भीतर रहें। हमेशा नेटवर्क इवेंट्स को रजिस्टर करें RegisterNetEvent हैंडलर जोड़ने से पहले, और याद रखें कि क्लाइंट पर पंजीकृत कोई भी इवेंट संभावित रूप से चीटर द्वारा इंजेक्टर का उपयोग करके ट्रिगर किया जा सकता है।

अपने इवेंट्स को सुरक्षित करना

सर्वर-साइड इवेंट हैंडलर्स को हमेशा आने वाले डेटा को सत्यापित करना चाहिए। जांचें कि स्रोत खिलाड़ी मौजूद है, डेटा प्रकार अपेक्षाओं से मेल खाते हैं, और स्पैम रोकने के लिए दर सीमित करें। बिना सत्यापन के क्लाइंट इवेंट्स के माध्यम से डेटाबेस आईडी जैसी संवेदनशील जानकारी कभी न भेजें। एक सामान्य पैटर्न है सर्वर-साइड कॉलबैक्स का उपयोग करना जहां क्लाइंट डेटा का अनुरोध करता है, सर्वर अनुरोध को सत्यापित करता है और जानकारी प्राप्त करता है, फिर उस विशिष्ट क्लाइंट को प्रतिक्रिया इवेंट ट्रिगर करता है।

Exports के साथ काम करना

निर्यात एक संसाधन को अन्य संसाधनों द्वारा सीधे कॉल की जाने वाली फ़ंक्शन एक्सपोज़ करने की अनुमति देते हैं। आप अपने में निर्यात परिभाषित करते हैं fxmanifest.lua और उन्हें अपनी स्क्रिप्ट फ़ाइलों में लागू करें। जब कोई अन्य संसाधन कॉल करता है exports['your-resource']:YourFunction(args)यह समकालिक रूप से निष्पादित होता है और परिणाम लौटाता है। यह विशेष रूप से फ्रेमवर्क ब्रिज, साझा उपयोगिता पुस्तकालयों, और फोन स्क्रिप्ट्स, इन्वेंट्री सिस्टम्स, या जॉब मैनेजर्स से डेटा एक्सेस करने के लिए उपयोगी है बिना इवेंट्स के माध्यम से संसाधनों को कड़ी तरह से जोड़ने के।

कॉलबैक और Async पैटर्न

कई FiveM फ्रेमवर्क कॉलबैक सिस्टम लागू करते हैं जो इवेंट्स को प्रतिक्रिया हैंडलिंग के साथ जोड़ते हैं। QBCore उपयोग करता है QBCore.Functions.CreateCallback सर्वर पर और QBCore.Functions.TriggerCallback क्लाइंट पर। ESX में समान पैटर्न है ESX.RegisterServerCallbackये कॉलबैक्स क्लाइंट को सर्वर से डेटा अनुरोध करने और इसे कॉलबैक फ़ंक्शन में प्राप्त करने देते हैं, असिंक्रोनस घटनाओं और सिंक्रोनस-फीलिंग कोड के बीच पुल का काम करते हैं। डेटाबेस क्वेरीज या इन्वेंटरी चेक्स के साथ काम करते समय जो सर्वर प्राधिकरण की आवश्यकता होती है, इन पैटर्न्स को समझना आवश्यक है।

संसाधन संचार के लिए सर्वश्रेष्ठ प्रथाएँ

कोलिज़न से बचने के लिए अपने इवेंट नामों को नेमस्पेस्ड रखें, एक पैटर्न का उपयोग करते हुए जैसे resourceName:eventAction. अपने एक्सपोर्ट्स को स्पष्ट रूप से दस्तावेज़ित करें ताकि अन्य डेवलपर्स आपके संसाधन के साथ एकीकृत कर सकें। दो संसाधनों के बीच परस्पर एक्सपोर्ट से बचें क्योंकि इससे लोड-ऑर्डर समस्याएं हो सकती हैं। अपने स्क्रिप्ट्स के लिए API डिज़ाइन करते समय, सरल डेटा एक्सेस के लिए एक्सपोर्ट्स और जटिल वर्कफ़्लोज़ के लिए इवेंट्स को प्राथमिकता दें जो आपके सर्वर के विभिन्न हिस्सों में कई चरण या साइड इफेक्ट्स शामिल करते हैं।

शुरू करने के लिए तैयार?

हमारी शॉप से स्क्रिप्ट लें, या सपोर्ट, अपडेट और आगे आने वाली चीज़ों की झलक के लिए Discord से जुड़ें।