"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गोलंग का उपयोग करके एक साधारण लाइव सर्वर एक्सटेंशन कैसे बनाएं

गोलंग का उपयोग करके एक साधारण लाइव सर्वर एक्सटेंशन कैसे बनाएं

2025-03-04 पर पोस्ट किया गया
ब्राउज़ करें:880

] मज़ाक कर रहा हूँ। लेकिन क्या आपने सोचा है कि हुड के नीचे कैसे काम करता है? आज के ब्लॉग में, यह समझने की कोशिश करें कि गोलंग का उपयोग करके हाथों पर कार्यान्वयन के साथ कैसे काम किया जाता है। गोलंग क्यों? खैर, मैं इन दिनों गोलंग की खोज कर रहा हूं, और एक परियोजना बनाने से बेहतर क्या है? इतना पर्याप्त संदर्भ (गोलंग में एक नहीं) चलो शुरू हो जाता है।

How to Create a Simple Live Server Extension Using Golang लाइव सर्वर कैसे काम करता है?

] यह HTTP सर्वर के माध्यम से इन स्थिर फ़ाइलों की सेवा करके शुरू हुआ। हुड के तहत यह FSNotify (हम अपनी परियोजना के लिए इसका उपयोग करने जा रहे हैं), Fswatch (UNIX- आधारित फ़ाइल सिस्टम में) या चोकीडर (Nodejs के लिए) जैसे फ़ाइल वॉचर को नियोजित करता है, फाइल परिवर्तनों के लिए परियोजना की निर्देशिका की निरंतर निगरानी करने के लिए (मूल रूप से जब आप किसी भी फ़ाइल को एक्सटेंशन के साथ सहेजते हैं।

कोर में यह आपके (नोड जेएस) सर्वर और ब्राउज़र के बीच एक WebSocket कनेक्शन का उपयोग करता है। जब सर्वर एक फ़ाइल में परिवर्तन का पता लगाता है तो यह Websocket के माध्यम से ब्राउज़र को एक पुनः लोड अधिसूचना भेजता है। ब्राउज़र, बदले में, नए परिवर्तनों को प्रतिबिंबित करने के लिए पृष्ठ को फिर से लोड करता है। इसके अतिरिक्त यह जावास्क्रिप्ट मॉड्यूल के लिए CSS इंजेक्शन (केवल एक पूर्ण पुनः लोड के बिना केवल शैलियों को अपडेट करना), HMR (हॉट मॉड्यूल प्रतिस्थापन) का उपयोग करता है। यह सुनिश्चित करता है कि डेवलपर को कोड में प्रत्येक परिवर्तन के बाद मैन्युअल रूप से ब्राउज़र को फिर से लोड करने की आवश्यकता के बिना एक वास्तविक समय की प्रतिक्रिया मिलती है।

परियोजना अवलोकन

इसलिए इस परियोजना के साथ, मेरा विचार समान था। मेरा लक्ष्य फ़ाइल परिवर्तनों (जैसे HTML, CSS, और JavaScript) के लिए देखना था और जब भी कोई संशोधन का पता लगाया गया तो ब्राउज़र को पुनः लोड किया गया। इसके लिए, मैंने GO के अंतर्निहित HTTP सर्वर और FSNotify पैकेज का उपयोग किया, जो कुशलता से फ़ाइल सिस्टम इवेंट की निगरानी करता है।

1। स्थिर फ़ाइलों की सेवा

] स्थैतिक फाइलें, जैसे HTML, CSS और JavaScript, को ./static फ़ोल्डर से लोड किया जाएगा। यह http.fileserver का उपयोग करके संभाला जाता है:

]

2। एंडपॉइंट को पुनः लोड करें

] /रीलोड रूट एक ट्रिगर के रूप में कार्य करता है, जब सर्वर एक संशोधन का पता लगाता है तो ब्राउज़र को "रीलोड" संदेश भेजता है:

] ]

3। फ़ाइल देखना बदल जाता है
http.Handle("/", http.FileServer(http.Dir("./static")))

] चौकीदार, गलत: = fsnotify.newwatcher () अगर गलत! = nil { log.fatal (गलत) } defer watcer.close () के लिए { चुनना { केस इवेंट: =

4। ट्रैक की गई फ़ाइलों को फ़िल्टर करना
] यह फ़ाइल प्रकारों की जांच करने के लिए filepath.ext फ़ंक्शन का उपयोग करके किया गया था:

http.HandleFunc("/reload", func(w http.ResponseWriter, r *http.Request) {
    



5। सर्वर चलाना

]

log.println ("सर्वर शुरू करना: 8000") log.fatal (http.listenandserve (": 8000", nil))


अंतिम विचार

] ] ]
func scanFileChanges() {
    watcher, err := fsnotify.NewWatcher()
    if err != nil {
        log.Fatal(err)
    }
    defer watcher.Close()

    for {
        select {
        case event := 
विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/abhishek_writes/how-to-create-a-simple-server-extension-extension-using-golang-2k0e?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3