2012-05-29 14 views
14

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

BaseHub (हैंडल कनेक्शन सामान पोकर, ब्लेक जेक, और स्लॉट के लिए आम है कि)

PokerHub: BaseHub (हैंडल पोकर खेल खेलने)

BlackjackHub: BaseHub (ब्लेक जेक खेल खेलने हैंडल्स)

SlotsHub: BaseHub

ChatHub (हैंडल चैट सुविधाओं)

मैं वें था (स्लॉट खेल खेलने हैंडल्स) इस वेब ऐप के पोकर पेज को पोकरहब से कनेक्ट करने के साथ-साथ चैटहब और ब्लैकजैक पेज से कुछ ऐसा ही होगा। स्लॉट पेज स्पष्ट रूप से केवल स्लॉटशब से कनेक्ट होगा।

अब, बातें मैं को लेकर अनिश्चित हूं हैं: पोकर/ब्लेक जेक पृष्ठों दोनों PokerHub/BlackjackHub और ChatHub या से कनेक्ट करना चाहिए वहाँ किसी तरह मैं उन्हें केवल PokerHub/BlackjackHub से कनेक्ट और चैट प्रतिनिधि हो सकता है चैट हब में विशेषताएं? उस स्थिति में मैं एक इंटरफ़ेस IHasChat या ऐसा कुछ बना सकता हूं। किसी भी मामले में ChatHub भी बेसहब का विस्तार करना चाहिए? वर्तमान में बेसहब केवल आईकनेक्टेड, आईडीिसकनेक्ट लागू करता है और मूल समूह कार्यों (जॉइन ग्रुप, अवकाश समूह) को भी संभालता है। साथ ही, बेसहब एक साझा उदाहरण (सिंगलटन) होना चाहिए?

आखिरकार, अगर आपको लगता है कि मैं बस इसके बारे में पूरी तरह गलत हूं तो कृपया मुझे बताएं। यह मेरी पहली सिग्नल परियोजना है और मुझे पता है कि मैं इस पर एक विशेषज्ञ नहीं हूं। साथ ही, मुझे पता है कि वास्तव में यहां कई प्रश्न हैं। यदि आप किसी भी या सभी का जवाब दे सकते हैं, तो मैं वास्तव में इसकी सराहना करता हूं।

धन्यवाद, टॉम

+0

मैं एक बहुत ही इसी तरह की स्थिति है, जहां मैं अलग विन्यास के साथ कई केन्द्रों की आवश्यकता है में चलाने की है । – kzfabi

उत्तर

0

यह कुछ समय के लिए यहाँ से बाहर कर दिया गया है, ताकि आप इस सवाल का जवाब कोई आवश्यकता नहीं है, लेकिन ... यहाँ कुछ भी नहीं जाता है।

मैं सिग्नलआर के लिए नया हूं, इसलिए मुझे थोड़ा सा अनिश्चितता है कि आपका डिज़ाइन इसके प्रदर्शन को कैसे प्रभावित करेगा।

abstract BaseHub : Hub; 
abstract MultiplayerHub : BaseHub; // (Handles chat and other MP necessities) 
BlackJackHub : MultiplayerHub; 
PokerHub : MultiplayerHub; 
SlotsHub : BaseHub; 

मैं किसी भी कारण इस डिजाइन SignalR साथ किसी भी मुद्दे का कारण होता है, लेकिन फिर से नहीं सोच सकते हैं, मेरे पास नहीं है: अगर ऐसा कोई मुद्दा नहीं है, मैं इस तरह एक वस्तु मॉडल पर विचार हो सकता आगे बढ़ने के लिए बहुत सारे अनुभव।

+0

इस तरह आप चैट करने के लिए हर हब बनाने के लिए केवल चैट तर्क साझा कर रहे होंगे, लेकिन मुझे लगता है कि @ टॉम सभी हब्स के साथ चैट साझा करना चाहता है और यही कारण है कि वह चैटबब के बारे में बात करता है। – kzfabi

5

आप जितने चाहें उतने हब्स प्राप्त कर सकते हैं क्योंकि सिग्नल सर्वर के लिए केवल एक कनेक्शन है। हब एक आरपीसी कार्यान्वयन हैं और सभी एक ही कनेक्शन साझा करते हैं।

$.connection.hub.start() 

कहाँ हब js ग्राहक के अंदर एक नाम का स्थान: The Wiki page on hubs for the js client तो जैसे एक कनेक्शन को दर्शाता है।

0

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

सर्वर पक्ष पर एक एकल हब क्लास बनाएं।

आपको क्या करना चाहिए जेएस का उपयोग कर अलग-अलग ग्राहक हैं।

उदाहरण के लिए मेरी वेबसाइट में मेरे पास दो चीजें थीं। लाइव चैट और ऑफ़लाइन अधिसूचनाएं। Chat.aspx के लिए मेरे पास "चैट" नामक एक चर था जिसे हब के रूप में अभिनय किया गया था। अन्य सभी पृष्ठों के लिए मेरे पास एक वैरिएबल था जिसे नोटिफिकेशन हब कहा जाता था।

आप की तरह

नीचे
var pocker = $.connection.hub; 
var blackJack = $.connection.hub; 
var other = $.connection.hub; 

इस तरह संबंधित तरीकों फोन इसके अलावा, अगर आप अपने सर्वर विधि कहा जाता है जो की पहचान करना चाहते हैं, तो आप क्वेरी स्ट्रिंग पैरामीटर संलग्न कर सकते हैं कुछ कर सकते हैं। (: विभिन्न कनेक्शन टाइमआउट जैसे) लेकिन मेरे विशेष स्थिति वर्तमान संस्करण के साथ संभव हो सकता है नहीं लगता है (v1.1.0)

pocker.connection.qs = "type=pocker"; 
+1

लेकिन आपके पास सिंगल हब क्लास में दर्जनों विधि होंगे, जो कि भगवान ऑब्जेक्ट, एंटी पैटर्न –

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