मैं वर्तमान में हमारे ऐप्स के लिए आरपीसी ढांचे के रूप में उपयोग करने के लिए थ्रिफ्ट को देख रहा हूं (ज्यादातर सी # और सिल्वरलाइट में लिखा गया है)। मैं एक सेवा को कार्यान्वित करने और इसे सी # कंसोल ऐप से उपभोग करने के लिए आया हूं (परिवहन के रूप में सॉकेट का उपयोग करके)।मैं सी # थ्रिफ्ट सेवा कैसे कार्यान्वित करूं और इसे सिल्वरलाइट क्लाइंट के साथ उपभोग करूं?
सी # सर्वर साइड कोड मेरी कोड की तरह दिखाई देता है: (मूल रूप से कॉपी करने ट्यूटोरियल स्रोत कोड के साथ शामिल)
MyServiceHandler handler = new MyServiceHandler();
MyService.Processor processor = new MyService.Processor(handler);
TServerTransport serverTransport = new TServerSocket(9090);
TServer server = new TSimpleServer(processor, serverTransport);
server.Serve();
क्लाइंट पक्ष कोड यह की तरह दिखाई देता लिए:
TTransport transport = new TSocket("localhost", 9090);
TProtocol protocol = new TBinaryProtocol(transport);
MyService.Client client = new MyService.Client(protocol);
transport.Open();
client.SomeServiceCall();
हालांकि , हम सिल्वरलाइट क्लाइंट से सेवा का उपभोग करेंगे, और दुर्भाग्यवश सिल्वरलाइट फॉर थ्रिफ्ट में सॉकेट के लिए कोई समर्थन नहीं है। मुझे लगता है कि मुझे क्लाइंट और सेवा के बीच HTTP संचार का उपयोग करने के लिए मजबूर किया गया है, थ्रिफ्ट के सी # थेटप क्लाइंट और थेटपैंडलर कक्षाओं का उपयोग करके? मुझे वहां कोई तरीका नहीं मिल सका, क्या कोई मुझे सही दिशा में इंगित कर सकता है? कुछ उदाहरण सर्वर और क्लाइंट साइड कोड की सराहना की जाएगी।
सिल्वरलाइट के साथ, * और यह कई और विविध सुरक्षा विचारों * है, पैटर्न आमतौर पर सिल्वरलाइट वेब होस्ट/सेवा या किसी अन्य डब्ल्यूसीएफ या आरआईए सेवा से आपकी होस्टिंग पर बाहरी सेवाओं को कॉल करने के लिए होता है। इसका मतलब है कि आपके सिल्वरलाइट ऐप में किसी भी सेवा के लिए कॉल का एक बंदरगाह है। क्या आप कोई नमूना कोड प्रदान कर सकते हैं? –
मैंने कुछ नमूना कोड जोड़ा –
MyService क्या दिखता है? – Chazt3n