मैंने SignalR
अपनी कई परियोजनाओं में रीयल-टाइम मैसेजिंग कार्यक्षमता को प्राप्त करने के लिए उपयोग किया है। यह मज़बूती से काम करने लगता है और इसका उपयोग करना सीखना बहुत आसान है।
प्रलोभन, कम से कम मेरे लिए, एक वेब एपीआई सेवा को विकसित करने और SignalR
सब कुछ के लिए उपयोग करना छोड़ देना है ।
मुझे लगता है कि यह विचारशील डिजाइन द्वारा प्राप्त किया जा सकता है, और यदि ऐसा होता है, तो इसका मतलब है कि बहुत कम ग्राहक कोड आवश्यक होगा। इससे भी महत्वपूर्ण बात, इसका मतलब यह होगा कि विभाजित इंटरफ़ेस के बजाय सेवाओं के लिए एक एकल इंटरफ़ेस होगा, और सबसे खराब स्थिति में, कोई भी इस बारे में सोचने के बिना तार कर सकता है जब चीजें प्रदान की जाती हैं, आदि।
तो, मैं जानना चाहूंगा:
- क्या प्रदर्शन के अलावा सभी वेब सेवाओं के बदले सिग्नलआर का उपयोग नहीं करने का कोई अन्य कारण है?
- क्या सिग्नलआर का प्रदर्शन पर्याप्त रूप से इस बात से संबंधित है कि ऐसा करने का कोई मतलब नहीं है?
लंबे समय से मेरा सपना है कि सर्वर साइड ऑब्जेक्ट और सेवा परिभाषाओं का क्लाइंट-साइड सर्विस एक्सेस कोड में अनुवाद करने में सक्षम हो, जैसे बिना कुछ खामोश किए node.js
। उदाहरण के लिए, अगर मैं एक दिलचस्प वस्तु को परिभाषित InterestingObject
और के लिए एक सेवा CRUD
वस्तु InterestingObjectService
, मैं सेवा करने के लिए एक मानक यूआरएल मार्ग को परिभाषित कर सकते हैं - जैसे कि, "/ {SERVICENAME} / {methodName}" - लेकिन मैं अभी भी लिखने ग्राहक कोड के लिए उपयोग करने की आवश्यकता है सेवा। चूंकि ऑब्जेक्ट क्लाइंट से सर्वर और बैक में पास होने वाला है, इसलिए कोई व्यावहारिक कारण नहीं हैक्लाइंट-साइड कोड में स्पष्ट रूप से ऑब्जेक्ट को परिभाषित करने के लिए, न ही सीआरयूडी संचालन करने के लिए मार्गों को स्पष्ट रूप से परिभाषित करने की आवश्यकता होनी चाहिए। मुझे ऐसा लगता है कि इस सब को मानकीकृत करने का एक तरीका होना चाहिए ताकि ग्राहक को इस धारणा के तहत लिखना संभव हो कि ग्राहक से सर्वर तक सेवा पहुंच और पारदर्शिता के रूप में वापस काम किया जाए क्योंकि अगर मैं एक WinForms या Java लिख रहा था एप्लेट या नेटिव ऐप या आपके पास क्या है।
यदि सिग्नलआर एक पारंपरिक वेब सेवा के बदले में उपयोग करने के लिए पर्याप्त है, तो यह इसे प्राप्त करने का एक व्यवहार्य तरीका हो सकता है। सिग्नलआर में पहले से ही मेरे द्वारा वर्णित सेवा जैसे हब का काम करने के लिए कार्यक्षमता शामिल है, इसलिए मैं एक सामान्य आधार (सीआरयूडी) सेवा को परिभाषित कर सकता हूं जो इस कार्यक्षमता के सभी को कुछ प्रतिबिंब के साथ आउट-ऑफ-द-बॉक्स की पेशकश करेगा। तब मैं लगभग सेवा प्राप्त करने के लिए ले जा सकता था, मुझे कुछ लिखने के लिए री-राइटिंग कोड की झुंझलाहट से बचा सकता था, जो कि सम्मेलन द्वारा पहुँचा जा सकता था - और इससे भी महत्वपूर्ण बात यह है कि यह अद्यतन करने के लिए मुझे लिखने का कोड खर्च करना होगा। डोम।
मेरे संपादन को पढ़ने के बाद मुझे ऐसा लग रहा है कि यह थोड़ा निरर्थक हो सकता है इसलिए कृपया बेझिझक मुझसे पूछें कि क्या आपके पास मेरे बारे में प्रश्न हैं। मूल रूप से, मैं चाहता हूं कि सेवा की पहुंच यथासंभव पारदर्शी हो।