2010-04-03 9 views
5

टुडे मैं स्वयं होस्टिंग डब्ल्यूसीएफ सर्विसेज के लिए सर्विसहोस्ट का उपयोग करता हूं।उसी सॉकेट पर डब्ल्यूसीएफ सेवा और टीसीपी सर्वर कैसे होस्ट करें?

मैं

मैं यूआरएल नामस्थान पर नियंत्रण की जरूरत है (तो मैं जाने के लिए सक्षम हो जाएगा (प्रसारण टीसीपी धारा के कुछ प्रकार के लिए ग्रहणाधिकार की तरह) प्रत्यक्ष सॉकेट कार्यों के लिए अपने खुद के टीसीपी programm मेरी WCF सेवाओं के लिए पास होस्ट करना चाहते हैं मेरे क्लाइंट कुछ अच्छे यूआरएल जैसे example.com:port/myserver/stream?id=1 या example.com:port/myserver/stream?id=anything का उपयोग करके सीधे मेरी सेवा में टीसीपी धाराएं भेजने के लिए और इसलिए मुझे परेशान नहीं किया जाएगा एक समय में 1 सॉकेट के लिए 1 क्लाइंट के आइडिया के साथ, मैं वास्तव में अपने डब्ल्यूसीएफ सेवाओं को उसी सर्वर पर अपने सर्वर के रूप में रखना चाहता हूं या यह www.example.com:port/myWCF/stream को कॉल करने में सक्षम होने के लिए क्या है आईडी = 222 ... और मैं इसे किसी भी बंदरगाह पर काम करना चाहता हूं - न केवल 80)

क्या कोई शरीर कृपया इसके साथ मेरी मदद कर सकता है?

मैं अभी केवल डब्ल्यूसीएफ का उपयोग कर रहा हूं। और मुझे यह नहीं लगता कि यह कैसे काम करता है। यह कई अनुमोदनों में से एक है क्यों मैं टीसीपी को साफ़ करने के लिए माइग्रेशन शुरू करना चाहता हूं =

मैं नेट-टीसीपी बाध्यकारी या किसी अन्य प्रकार के अन्य शांत डब्ल्यूएस- * बाइंडिंग का उपयोग नहीं कर सकता (आज मैं सबसे सरल उपयोग करता हूं ताकि मेरे ग्राहक जैसे फ़्लैश, AJAX, आदि आसानी से मुझसे कनेक्ट)।

मुझे कनेक्शन प्रोटोकॉल को लागू करने में तेज़ और आसान की आवश्यकता है जैसे मैंने डेटा ट्रांसफरिंग के वास्तविक समय के लिए सॉकेट के साथ पहले उपयोग किया है।

तो .. कोई विचार? कृपया - मुझे मदद चाहिए।

+0

आप डब्ल्यूसीएफ में एक कस्टम परिवहन लिख सकते हैं। यह SO प्रश्न देखें - http://stackoverflow.com/questions/381142/how-to-write-a-socket-based-custom-transport-for-wcf –

+2

मुझे नहीं पता कि डब्लूसीएफ का उपयोग करने में समस्या क्या है । ऐसा नहीं कर सकता कि आपको ऐसा करने की ज़रूरत है? – Aaronaught

+0

डब्ल्यूसीएफ टीसीपी सॉकेट पर इंफिनिट रीयल टाइम हाय रेज़ोल्यूशन डेटा ट्रांसफर के लिए बहुत धीमी और बेगी है। – Rella

उत्तर

0

यदि डब्ल्यूसीएफ के साथ आपकी समस्या प्रदर्शन है तो आपको प्रदर्शन सुधारने के लिए एक्सएमएल क्रमबद्धता को खत्म करने के लिए बाइनरी नेट टीसीपी बाइंडिंग का प्रयास करना चाहिए।

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

डब्ल्यूसीएफ के लिए यूडीपी विकल्प उपलब्ध हैं, या आप अपना खुद का कार्यान्वयन कर सकते हैं। डब्ल्यूसीएफ एक संदेश पंप से ज्यादा कुछ नहीं है, और आप जो कुछ भी चाहते हैं उसके साथ आप विभिन्न चरणों को प्रतिस्थापित कर सकते हैं।

+0

मैं नेट-टीसीपी बाइंडिंग का उपयोग नहीं कर सकता क्योंकि फ़्लैश और अन्य सामान से कनेक्ट करना मुश्किल है। मुझे कनेक्शन प्रोटोकॉल को अपनाने में तेजी से और अधिक आसान की आवश्यकता है जैसे कि मैंने डेटा ट्रांसफरिंग के वास्तविक समय हाय राशि के लिए सॉकेट के साथ पहले उपयोग किया है। सॉकेट कनेक्शन के साथ मेरी एकमात्र समस्या यह है कि - मैं उन्हें डब्ल्यूसीएफ (उसी सॉकेट पर) के साथ अच्छी जोड़ी में काम नहीं कर सकता, ताकि मेरा टीसीपी सर्वर उपलब्ध हो सके जैसे कि मैं अपनी डब्लूसीएफ सेवाओं को कॉल करता हूं - सरल लेकिन पठनीय एड्रेस द्वारा) – Rella

+0

और मैं कर सकता हूं यूडीपी का उपयोग बिल्कुल नहीं करें क्योंकि मेरे मालिक को दुःख होता है और हमें वास्तव में शर्मिंदा होना चाहिए कि सभी डेटा क्लाइंट – Rella

+0

पर आए, लेकिन यह सुनिश्चित करने के लिए यूडीपी क्या करता है कि डेटा क्लाइंट से आता है? हां, आप बहुत अच्छे प्रमाण के साथ आ सकते हैं कि आईपी एड्रेस सही है। लेकिन अगर यह एक सार्वजनिक साइट है तो आप वास्तव में नहीं जान पाएंगे कि क्लाइंट कॉल कर रहा है। –

-1

सुनिश्चित नहीं है कि यह आपकी मदद करेगा या नहीं, लेकिन अपनी नेट टीसीपी साझाकरण सेवा को चालू करने का प्रयास करें।

1

ठीक है अगर आप शुद्ध सॉकेट में उतरने जा रहे हैं, तो आप अपनी सेवा को प्रॉक्सी के रूप में भी काम कर सकते हैं। डब्ल्यूसीएफ सेवाओं को किसी अन्य बंदरगाह पर और वांछित बंदरगाह पर अपने ऐप को सुनें। जब आप अपने ऐप में अनुरोध प्राप्त करते हैं, तो मैन्युअल रूप से हेडर पार्स करें और मौसम की जांच करें, यह आपकी सेवा या डब्ल्यूसीएफ सेवा के लिए है। यदि यह डब्ल्यूसीएफ सेवा के लिए है, तो डब्ल्यूसीएफ सेवा के लिए एक टीसीपी कनेक्शन खोलें और प्राप्त डेटा को पास करें, और उसके बाद बस ग्राहक को डब्ल्यूसीएफ के जवाब को वापस पास करें ..

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

संबंधित मुद्दे