2012-06-05 28 views
6

बस हास्केल और वेब ढांचे को देखकर आश्चर्यचकित हो रहा है कि क्या एचटीएमएल 5 और आरईएसटी ऐप्स लिखने के लिए प्लेटफॉर्म को पावर करने के लिए हास्केल की महान थ्रेडिंग/इवेंट कार्यक्षमता का उपयोग करना समझ में आता है जो डेटा और वेबसेट के लिए एक HTTP एपीआई का खुलासा करता है (शायद सॉकजेएस समर्थन के साथ उपयुक्त फॉलबैक) घटनाओं के लिए एपीआई? ऐसा लगता है कि "बड़े" वेब ढांचे वेबसाकेट्स को प्रथम श्रेणी के नागरिक के रूप में समर्थन नहीं देते हैं, हालांकि उनके पास कई अन्य चीजें हैं जो उनके लिए जा रही हैं।क्या एचस्केल वेब ढांचा एक HTTP/Websocket डेटा और संदेश मंच के लिए उपयोग करेगा?

मेरी चिंता उपलब्ध कोर का उपयोग कर रही है, जो हास्केल अच्छी तरह से कर सकता है, लेकिन सत्यापन और सर्वर-साइड लॉजिक (शायद लुआ या इसी तरह एम्बेड करके) के लिए सर्वर पक्ष पर आसान उपयोगकर्ता एकीकरण प्रदान कर रहा है। अगर किसी ने इसे JVM पर लिखा है, तो कोई भी इस तरह की चीज़ के लिए एकाधिक सर्वर-साइड भाषा समर्थन और पुस्तकालयों का उपयोग कर सकता है।

मुझे यकीन है कि लोग अपने स्वयं के अनुप्रयोगों के लिए एक-एक समाधान में इस तरह की चीजें कर रहे हैं, लेकिन मैं एक पैस-प्रकार दृष्टिकोण के साथ सोच रहा हूं जहां कोई डेटा के साथ HTML5 ऐप्स लिख सकता है (उचित सिंक्रनाइज़ेशन समेत ऑफ़लाइन उपयोग के लिए) और प्लेटफ़ॉर्म के मौलिक हिस्से के रूप में "मुक्त" ईवेंट करना। अधिकतर तर्क ब्राउज़र में रहते हैं लेकिन कुछ उपयुक्त हुक और उचित एम्बेड करने योग्यता के साथ सर्वर पर चलाए जा सकते हैं (जावास्क्रिप्ट प्रश्न से बाहर निकलता है और हास्केल में दुभाषियों को एम्बेड करने के बारे में निश्चित नहीं है क्योंकि मैं सामान्य रूप से हास्केल से खतरनाक रूप से परिचित हूं) ।

हास्केल के साथ अब तक की समस्या का एक हिस्सा यह है कि मैं एक गणित लड़का नहीं हूं। मैंने कॉलेज में सीएस का अध्ययन नहीं किया और मैं एक रचनात्मक प्रकार के विचारक हूं। तो बहुत सारे ट्यूटोरियल और दस्तावेज़ीकरण मुझे बहुत खो देते हैं, खासकर गणितीय सामान से निपटने पर।

क्या कोई इस मार्ग को पहले से ही मिटा देता है? क्या मैं पार्टी के लिए देर हो चुकी हूँ? :)

+1

क्या आपने यसोड और स्नैप को देखा है? वे दोनों WebSockets का समर्थन करते हैं ... और ऐसा लगता है कि कोई भी सॉकजेएस समर्थन पर भी काम कर रहा है: https://github.com/bitonic/sockjs-haskell –

उत्तर

1

मेरा मानना ​​है कि सभी प्रमुख ढांचे में कुछ प्रकार के websockets समर्थन हैं, इसलिए उन्हें आपकी आवश्यकताओं के आधार पर उचित विकल्प होना चाहिए। Yesod लिए, वहाँ एक चैट प्रणाली बनाने का एक उदाहरण है किताब में (EventSource का उपयोग कर, नहीं WebSockets) उपलब्ध:

http://www.yesodweb.com/book/wiki-chat-example

+0

मुझे वास्तव में अभी तक यसोड पसंद है। अगर किसी को बेंचमार्क पर विश्वास करना है तो यह काफी तेज लगता है। :) जबकि इवेंटसोर्स सामान ठीक काम कर सकता है, मैं वास्तव में वेबस्केट या अधिमानतः सॉकजेएस (जिसमें फॉलबैक शामिल है) समर्थन की तलाश में हूं। –

+0

क्या आपने कहीं एक वार्प ट्यूटोरियल लिखा है? मैं एक आरईएसटी ऐप लिखने के लिए वार्प का उपयोग करने के तरीके पर सरल दस्तावेज के तरीके में बहुत कुछ नहीं ढूंढ पा रहा हूं। एक प्रकार का "डमीज के लिए वार" चीज का प्रकार ... –

+0

निकटतम WAD के लिए README.md है: https://github.com/yesodweb/wai/blob/master/wai/README.md। ऐसे कई लोग नहीं हैं जो वेब ऐप्स को सीधे वाईएआई के खिलाफ लिखते हैं (हालांकि कुछ मौजूद हैं)। –

4

ग्रेगरी कोलिन्स स्नैप का उपयोग कर एक इंटरैक्टिव चैट वेबसाइट का निर्माण करने के लिए लंबे समय मतदान का उपयोग कर के बारे में tutorial at CUFP last year दिया (websockets नहीं)। स्रोत कोड here है।

वेबसाइकिल विभाग में, जैस्पर वान डेर जेगेट ने Haskell websockets library लिखा था। यह hackage पर उपलब्ध है और websockets-snap के साथ आता है, जो स्नैप ढांचे का समर्थन प्रदान करता है। wai-websockets भी है जो वार्प के साथ एकीकरण प्रदान करता है।

+0

मैंने देखा है कि हैकेज लाइब्रेरी लेकिन इसकी उत्पादन गुणवत्ता के बारे में निश्चित नहीं था और यह वास्तव में स्नैप के साथ कैसे एकीकृत हुआ। मैं वास्तव में ऐसा कुछ ढूंढने की उम्मीद कर रहा था जो एक वेब ढांचे का एक वास्तविक प्रथम श्रेणी का नागरिक था और एक ऐसा जोड़ा जो शायद काम करता है लेकिन अच्छा एकीकरण प्रदान नहीं करता है।उस ने कहा, मैं निश्चित रूप से स्नैप और websockets (फिर से) पर एक नजदीकी नजर डालेंगे। –

+0

मैंने चर्चा की [यहां] (http://stackoverflow.com/questions/5645168/comparing-haskells-snap-and-yesod-web-frameworks/5650715#5650715) और [यहां] (http: //softwaresimply.blogspot। कॉम/2012/04/उम्मीदवार-निष्पक्ष और उपयोगी-तुलना -.html) कैसे हास्केल वेब ढांचे बहुत मॉड्यूलर और विनिमय करने योग्य हैं, और मैं तर्क दूंगा कि यह प्रवृत्ति वेबसाइकिल लाइब्रेरी और उससे आगे तक फैली हुई है। मुझे लगता है कि यह हास्केल की अत्यधिक उच्च अमूर्त क्षमताओं है जो इसे अन्य भाषाओं की विशाल बहुमत की तुलना में अधिक डिग्री प्रदान करता है। जितना आप उपयोग कर रहे हैं उतने में आपको बेक जाने वाली चीज़ों की आवश्यकता नहीं होगी। – mightybyte