2011-03-06 9 views
6

मुझे पता है जो WCF या .NET सॉकेट के अधिक कुशल और अधिक एक खेल developpment परिदृश्य में सिफारिश की है चाहते हैं।डब्ल्यूसीएफ वीएस। सॉकेट

-एक क्लाइंट/सर्वर संचार

-peer स्थानीय नेटवर्क पर सहकर्मी इंटरनेट पर खेलने के लिए:

यहाँ खेल के विभिन्न भागों रहे हैं।

मैं जानना चाहता हूं कि आप इन हिस्सों पर किस तकनीक का उपयोग करेंगे (दोनों पर डब्ल्यूसीएफ, दोनों पर सॉकेट, एक पर wcf और दूसरे पर सॉकेट ...) और यदि संभव हो तो क्यों।

खेल शामिल एक उच्च संचार आवृत्ति की आवश्यकता नहीं है (3-4 प्रति सेकंड पर्याप्त है)।

+0

कैसे आप स्थानीय नेटवर्क पर ग्राहक/ग्राहक क्या करने जा रहे:

यहाँ पी 2 पी के लिए कुछ उपयोगी लिंक कर रहे हैं? यह समझ में नहीं आता है। – Chev

+2

उसका मतलब है सहकर्मी 2 सहकर्मी; यह समझ में आता है – madd0

+0

नहीं, सहकर्मी के साथ सहकर्मी समझ में आता है। ग्राहक के लिए ग्राहक नहीं है। – Chev

उत्तर

6

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

लेकिन जैसा कि आप प्रति सेकेंड केवल 3-4 अनुरोधों का जिक्र करते हैं, डब्ल्यूसीएफ एक बहुत अच्छा विकल्प हो सकता है क्योंकि यह बहुत लचीला है और बहुत सारे विकास समय को बचाएगा।

कुछ अंक:

बाइंडिंग कि शुद्ध * के साथ शुरू NET अनुप्रयोगों के बीच में इस्तेमाल किया जा के लिए होती हैं। (क्लाइंट और सर्वर दोनों डब्ल्यूसीएफ)
यदि कोई भी डब्ल्यूसीएफ नहीं है: आप केवल उन बाइंडिंग का उपयोग कर सकते हैं जो नेट उपसर्ग से शुरू नहीं होते हैं। बेसिकहेटप बाइंडिंग, डब्ल्यूएसएचटीपी बाइंडिंग इत्यादि नेट * बाइंडिंग की तुलना में ये बहुत धीमी हैं क्योंकि बहुत अधिक ओवरहेड है।

आप नेटपीयर टीसीपी बाइंडिंग के साथ आगे बढ़ सकते हैं और थोड़ी देर के लिए इसके साथ खेल सकते हैं। यह डुप्लेक्स संचार का भी समर्थन करता है।

Peer-to-Peer Programming with WCF and .NET Framework 3.5
http://blogs.interknowlogy.com/2009/08/05/building-a-really-simple-wcf-p2p-application

10

आप प्रदर्शन सॉकेट अधिकतम करने के लिए चाहते हैं जाने के लिए रास्ता है, WCF दोनों डेटा और प्रसंस्करण भूमि के ऊपर है। लेकिन ... यदि प्रदर्शन आपके लिए महत्वपूर्ण है, तो आपको सी # के बजाय असेंबलर पर भी विचार करना चाहिए।

WCF एक झपकी के बिना प्रति सेकंड 3-4 अनुरोधों को संभाल लेंगे।

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

1

आप वास्तविक समय प्रदर्शन (आप सी # का उपयोग कर रहे तो मैं लगता है कि ऐसी बात है) की जरूरत नहीं है तो मैं WCF सुझाव देना चाहेंगे।

WCF आप एक बहुत आसान OOP शैली उपकरण आपके सर्वर-क्लाइंट प्रोटोकॉल लिखने के लिए दे देंगे।
WCF के साथ लाभ यह है कि बहुत आसान बनाए रखने और पालन करने के लिए है लंबे प्रोटोकॉल और कोड आप अंततः इसे में लिखने को चलाने में है।

यह जोड़ सकते हैं और प्रोटोकॉल के लिए सुविधाओं को बदलने अगर तुम कभी कुछ भी जोड़ना चाहते हैं के लिए आसान हो जाएगा।

डब्ल्यूसीएफ अत्यधिक अनुकूलन योग्य है ताकि आप विभिन्न डेटा भेजने वाले तरीकों के बारे में बेहतर तरीके से पढ़ सकें, और उन्हें अधिभारित करने के तरीके बेहतर तरीके से पढ़ सकें।

आप अपने डेटा स्थानांतरण अनुकूलित करने के विभिन्न बाध्यकारी प्रकार का उपयोग कर सकते हैं:

WCF Binding In Depth

+0

सी # वास्तविक समय अनुप्रयोगों को लिखने के लिए इस्तेमाल किया जा सकता है (मुझे लगता है कि यह भी वास्तविक समय से आपका मतलब है) पर निर्भर करता है। –

2

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

आपके मामले में के रूप में समस्याओं के अपने स्वयं के सेट है, तो आप भी मैसेजिंग प्रौद्योगिकियों पर दिखाई दे सकता है इस तरह के रूप MSMQ, ZeroMQ या ActiveMQ कि एक अच्छा अमूर्त प्रदान सॉकेट पर और विकास को बहुत सरल बनाते हैं।