प्रश्न: मैं अज्ञात उपयोगकर्ताओं का प्रबंधन कैसे करूं ताकि जब एक हब प्रतिक्रिया भेजता है तो एक ही ब्राउज़र में एकाधिक टैब अपडेट किए जाते हैं?सिग्नलआर सी # एमवीसी मैपिंग क्लाइंट आईडी
मैं एक परियोजना में SignalR एकीकृत करने के लिए अज्ञात उपयोगकर्ताओं रह सकते हैं ताकि ऑपरेटरों के साथ चैट करना चाहते हैं:
परिदृश्य इस प्रकार है। जाहिर है उपयोगकर्ता iIdentity के साथ प्रमाणित है क्लाइंट.उसर (उपयोगकर्ता नाम) कमांड के माध्यम से मैप किया गया है। लेकिन वर्तमान में एक अनाम उपयोगकर्ता कह रहा है साइट.com/tools और site.com/notTools मैं केवल एक कनेक्शन आईडी के साथ सभी टैब पर संदेश नहीं भेज सकता। केवल एक टैब प्रतिक्रिया इकट्ठा करता है।
मैंने आईडब्ल्यूसी पैच का उपयोग करने का प्रयास किया है, लेकिन यह उपकरण चैट जानकारी को डेटाबेस में सहेजने के लिए खाता नहीं है और मुझे लगता है कि AJAX के माध्यम से गुजरने वाले चर डेटाबेस को पढ़ने/लिखने का एक सुरक्षित तरीका नहीं है।
मैं भी निम्नलिखित में ध्यान दिया है: Managing SignalR connections for Anonymous user
हालांकि ऐसी है कि के रूप में एक आधार बनाने और सत्र का उपयोग कर Owin से कम सुरक्षित लगता है।
मुझे क्लाइंट.यूसर() का उपयोग करने का विचार था जब भी उपयोगकर्ता डिस्कनेक्ट करते समय इसे कनेक्ट और हटाते समय झूठा खाता बनाते थे। लेकिन मैं कचरा खातों के साथ अपने एस्पनेटस डीबी संदर्भ को भरना नहीं चाहता, यह अनावश्यक लगता है।
क्या नकली उपयोगकर्ता नाम मानचित्र बनाने के लिए UserHandler.ConnectedIds.Add(Context.ConnectionId);
का उपयोग करना संभव है? मुझे हानि हो रही है।
क्या iUserId प्रदाता का उपयोग करने के लिए यह समझदारी होगी?
public interface IUserIdProvider
{
string GetUserId(IRequest request);
}
फिर डेटाबेस बनाएं जो आईपी पते को कनेक्शन आईडी और एकल उपयोगकर्ता नामों में संग्रहीत करता है?
डेटाबेस:
उपयोगकर्ता: FK के साथ कनेक्शन आईडी को
|userid|username|IP |connectionIDs|
| 1 | user1 |127.0.0.1| 1 |
| 2 | user2 |127.0.0.2| 2 |
connectionIDs:
|connectionID|SignalRID|connectionIDs|
| 1 | xx.x.x.x| 1 |
| 2 | xx.xxx.x| 2 |
| 3 | xx.xxxxx| 2 |
| 4 | xxxxx.xx| 2 |
तो संभवत: कनेक्शन के आसपास तर्क बारे में?
public override Task OnConnected()
{
if(Context.Identity.UserName != null){
//add a connection based on the currently logged in user.
}
else{
///save new user to database?
}
}
लेकिन सवाल अभी भी बनी हुई है कि मैं वेबसाईट पर कमांड भेजते समय उसके साथ कई टैब कैसे संभालूं?
अद्यतन स्पष्ट होने के लिए, मेरा इरादा लाइव चैट/समर्थन उपकरण बनाना है जो हर समय ब्राउज़र में अज्ञात पहुंच की अनुमति देता है।
ग्राहक http://www.livechatinc.com
को कुछ इसी तरह चाहता है मैं पहले से ही है कि भेजता है और केंद्र से प्राप्त करता है, क्या डोमेन उस पर है की परवाह किए बिना एक जावास्क्रिप्ट प्लगइन बनाया है। (मेरे क्लाइंट में मल्टीसाइट्स हैं) पहेली में लापता टुकड़ा सबसे आसान है, अज्ञात उपयोगकर्ताओं को बहु-टैबड वार्तालापों की अनुमति देने के लिए प्रबंधित करना।
की तरह होगा एक Android एप्लिकेशन
जे एस के लिएफार्म रजिस्टर करने के लिए क्या आप चाहते हैं करने के लिए सक्षम होने के लिए एक अनाम उपयोगकर्ता है किसी भी खुले ब्राउज़र टैब से उसी साइट (यानी साइट.com) से चैट करें, है ना? – tede24
@ tede24 हां यही मैं चाहता हूं। – Chris
क्या आप किसी प्रकार के सत्र आईडी (गइड) के साथ एक कुकी सेट नहीं कर सकते हैं, उस आईडी के लिए एक समूह बनाएं और वहां सभी कनेक्शन की सदस्यता लें? इस तरह आप संदेशों को सभी टैब – tede24