मैं जाने वाले HTTP पैकेज के साथ खेल रहा था। मैं जावा में जैसा समानांतर में अनुरोध संसाधित करना चाहता था। लेकिन मैं नहीं कर सका।प्रोग्रामिंग भाषा में समानांतर HTTP अनुरोध को कैसे संसाधित करें?
मैंने एक साधारण वेब सर्वर बनाया, बीच में नींद डाली और महसूस किया कि प्रति बार एक अनुरोध प्रक्रिया करें, इसलिए यदि मैंने अपने ब्राउज़र पर रीफ्रेश किया है, तो पहले अनुरोध की प्रक्रिया को दूसरे अनुरोध तक पूरा करना होगा प्रसंस्करण शुरू, यहाँ कोड है:
func main(){
//Process the http commands
fmt.Printf("Starting http Server ... ")
http.Handle("/", http.HandlerFunc(sayHello))
err := http.ListenAndServe("0.0.0.0:8080", nil)
if err != nil {
fmt.Printf("ListenAndServe Error",err)
}
}
func sayHello(c http.ResponseWriter, req *http.Request) {
fmt.Printf("New Request\n")
processRequest(c, req)
}
func processRequest(w http.ResponseWriter, req *http.Request){
time.Sleep(time.Second*3)
w.Write([]byte("Go Say’s Hello(Via http)"))
fmt.Println("End")
}
मैं समानांतर में दोनों अनुरोध मैं प्रत्येक संसाधित करने के लिए जोड़ा पहले "जाना" कमांड "ProcessRequest (ग, अनुरोध)" "sayHello" समारोह में कार्रवाई करने के लिए करना चाहता था के रूप में एक अलग gorutine में अनुरोध। लेकिन ... यह काम नहीं करता .... मुझे नहीं पता क्यों। मुझे पता है कि दोनों अनुरोध संसाधित किए गए हैं क्योंकि मैं कंसोल पर मुद्रित रेखा देखता हूं लेकिन ब्राउजर जानकारी के लिए इंतजार कर रहा है ..... और मेरी प्रतिक्रिया न दिखाएं।
तो ... मेरे सवालों का,
प्रत्येक अनुरोध एक नया http.ResponseWriter बनाने करता है? या यह वही उपयोग है? क्या आप जानते हैं कि विभिन्न अनुरोधों के साथ प्रत्येक अनुरोध को संसाधित करने के लिए वेब सर्वर को कैसे इंगित किया जाए?
किसी भी मदद का स्वागत किया है ....
Fersca
धन्यवाद। ब्राउजर के बहुत ही स्मार्ट व्यवहार की वजह से आज बहुत समय बर्बाद हो गया :) –