आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

WebAssembly जावास्क्रिप्ट इंटरऑपरेबिलिटी के साथ ब्राउज़र पर अधिक भाषाओं को चलाने के लिए डिज़ाइन की गई आधुनिक तकनीकों में से एक है।

WebAssembly (WASM) स्टैक-आधारित वर्चुअल मशीनों के लिए डिज़ाइन किया गया एक प्लेटफ़ॉर्म-स्वतंत्र, बाइनरी इंस्ट्रक्शन फॉर्मेट है सक्षम वातावरण (यानी, वेब और सर्वर) पर चलने के लिए प्रोग्रामिंग भाषाओं के लिए एक पोर्टेबल संकलन लक्ष्य ऐप्स)।

WASM के साथ, आप अपने ब्राउज़र पर गो सहित कई प्रोग्रामिंग भाषाएँ चला सकते हैं और भाषा की विशेषताओं का उपयोग कर सकते हैं। साथ ही, वेब पर Javascript के साथ इंटरऑपरेट करें।

गो में WebAssembly के साथ शुरुआत करना

गो आपके गो एप्लिकेशन में WebAssembly का उपयोग करने के लिए प्रथम श्रेणी का समर्थन प्रदान करता है, आपको केवल कुछ कॉन्फ़िगरेशन बनाने और WebAssembly में गो कोड संकलित करने की आवश्यकता है।

आपको अपने गो कोड को WebAssembly में ट्रांसपाइल करने के लिए कुछ कॉन्फ़िगरेशन करने की आवश्यकता होगी। आपको अपना गो आर्किटेक्चर बदलना होगा

instagram viewer
GOARCH पर्यावरण चर के लिए मी था और गो ऑपरेटिंग सिस्टम GOOS चर के लिए जे एस.

इन कॉन्फ़िगरेशन को बनाने के लिए इस आदेश को अपनी कार्यशील निर्देशिका के टर्मिनल में चलाएँ।

सेट GOARCH=wasm GOOS=js 

अगला कदम है अपने गो कोड को WebAssembly में ट्रांसपाइल करना ।मी था फ़ाइल। अपने को ट्रांसपाइल करने के लिए यह कमांड चलाएँ main.go फ़ाइल नाम की फ़ाइल में lib.wasm

गो बिल्ड -o lib.wasm main.go

कमांड चलाने पर, आपको एक मिलेगा lib.wasm आपकी कार्यशील निर्देशिका में।

वेब पेज पर NodeJS के साथ WebAssembly फ़ाइल को निष्पादित करने के लिए आपको अपने गो इंस्टॉलेशन के साथ WebAssembly फ़ाइल को अपनी कार्यशील निर्देशिका में कॉपी करने की आवश्यकता है।

सीपी "$(go env GOROOT)/misc/wasm/wasm_exec.js" .

कमांड कॉपी करता है wasm_exec.js आपकी कार्यशील निर्देशिका में फ़ाइल और आपके आवेदन के प्रवेश बिंदु के रूप में कार्य करता है।

अब आप उपयोग कर सकते हैं wasm_exec.js गो और मेक के साथ अपनी WASM फ़ाइलों को निष्पादित करने के लिए स्क्रिप्ट डोम एपीआई कॉल।

नोड wasm_exec.js main.wasm

वेबसाइट को होस्ट करने के लिए एक वेब सर्वर शुरू करना

इस कोड को Go लेखकों से अपनी वर्किंग डायरेक्टरी में एक HTML फ़ाइल में जोड़ें ताकि WebAssembly डेटा स्ट्रीम को इसके साथ तुरंत चालू किया जा सके तत्काल स्ट्रीमिंग तरीका।



कॉपीराइट 2018 द गो लेखक। सर्वाधिकार सुरक्षित।
इस स्रोत कोड का उपयोग एक BSD-शैली
लाइसेंस द्वारा नियंत्रित होता है जो LICENSE फ़ाइल में पाया जा सकता है।



"यूटीएफ-8" />
जाओ वासम





HTML कोड Go Authors की ओर से है, एक WebAssembly स्ट्रीम को इंस्टैंट करने के लिए जो आपके Go कोड को वेबपेज से जोड़ता है।

पेज चलाने के लिए वेब सर्वर शुरू करना

आप करेंगे के साथ सर्वर सेट करें एचटीटीपी पैकेट. आयात करें एचटीटीपी पैकेज और लकड़ी का लट्ठा कंसोल में संभावित त्रुटियों को लॉग करने के लिए पैकेज।

आयात (
"लकड़ी का लट्ठा"
"नेट/एचटीटीपी"
)

आप सर्वर पते और उन फ़ाइलों की निर्देशिका के लिए चर घोषित कर सकते हैं जिन्हें आप पते पर सर्व करना चाहते हैं।

वर (
सर्वरएडर = ":8080"
निर्देशिका = "."
)

आप उपयोग कर सकते हैं फ़ाइल सर्वर की विधि एचटीटीपी एक निर्दिष्ट निर्देशिका में फ़ाइलों की सेवा के लिए पैकेज। फ़ाइल सर्वर विधि निर्देशिका में ले जाती है और फ़ाइल सर्वर उदाहरण लौटाती है।

समारोहमुख्य() {
सर्वफाइल्स: = http. फ़ाइल सर्वर (http. निदेशक (निर्देशिका))
अगर त्रुटि: = http. सुनो और सेवा (सर्वर एडर, सर्व फाइल्स); गलती! = शून्य {
लकड़ी का लट्ठा। Fatalln (err)
}
}

में मुख्य फ़ंक्शन, आपने रूट निर्देशिका में फ़ाइलों की सेवा के लिए एक फ़ाइल सर्वर आवृत्ति चर घोषित किया। सुनो और परोसें विधि निर्दिष्ट पोर्ट पर निर्दिष्ट निर्देशिका में फ़ाइलों की सेवा करती है।

Go में WebAssembly कार्य करता है

गो जेएस कार्यों को कॉल करने और डीओएम के साथ बातचीत करने के लिए कार्यक्षमता प्रदान करता है सिस्कल/जेएस पैकेट।

जे एस पैकेज WebAssembly होस्ट वातावरण तक पहुंच प्रदान करता है जेएस/वासम वास्तुकला। आपको अपने विकास परिवेश को इसके लिए सेट अप करने की आवश्यकता होगी GOARCH=wasm GOOS=js पैकेज तक पहुँचने और उपयोग करने के लिए।

आप अपने वेबपेज के साथ इंटरैक्ट करने के लिए पैकेज में विभिन्न विधियों का उपयोग कर सकते हैं। यहां बताया गया है कि आप इसके साथ फ़ंक्शन कैसे पंजीकृत कर सकते हैं जे एस पैकेट।

// फ़ंक्शन परिभाषा
समारोहछपाई(यह जेएस। वैल्यू, आई [] जेएस। कीमत)इंटरफेस{} {
वापस करना जेएस। वैल्यूऑफ़ (i[:])
}

छपाई कॉल-बैक फ़ंक्शन के रूप में पंजीकरण पर फ़ंक्शन ब्राउज़र कंसोल में फ़ंक्शन को पास किए गए डेटा को आउटपुट करेगा।

आप कॉल-बैक फ़ंक्शंस को इसके साथ पंजीकृत कर सकते हैं तय करना की विधि वैश्विक की विधि जे एस पैकेट। तय करना विधि फ़ंक्शन पहचानकर्ता और कॉल-बैक फ़ंक्शन उदाहरण लेती है।

समारोहरजिस्टर कॉलबैक फ़ंक्शन() {
जेएस। वैश्विक ()। सेट ("प्रिंट", जे.एस. फंकऑफ़(छपाई))
}

रजिस्टर कॉलबैक फ़ंक्शन विधि पंजीकृत करता है छपाई कॉल-बैक फ़ंक्शन के रूप में कार्य करता है जिसे आप ब्राउज़र कंसोल में उपयोग कर सकते हैं।

WebAssembly गो सहित कई भाषाओं में एक प्रायोगिक सुविधा है

WebAssembly सुविधाएँ कई भाषाओं के लिए अपेक्षाकृत नई हैं, खासकर जब से भाषा हाल ही में W3C मानक बन गई है। जे एस पैकेज प्रायोगिक है, और पैकेज को गो संगतता वादे से छूट दी गई है।