के अंदर पूरा यूआरएल प्राप्त करें मैं एएसपी.नेट एमवीसी अनुप्रयोगों के लिए सिग्नलआर सीखने के लिए एक मजेदार परियोजना के रूप में, सिग्नलआर का उपयोग कर एक उपयोगकर्ता ट्रैकिंग समाधान विकसित कर रहा हूं।सिग्नलआर हब
वर्तमान में मैं लॉग इन उपयोगकर्ताओं को ट्रैक कर सकता हूं और वे एक विशिष्ट पृष्ठ पर कितने समय तक हैं। यदि वे किसी अन्य पृष्ठ पर जाते हैं तो मैं उसे और टाइमर ट्रैक करता हूं जो सिग्नलआर रीसेट अपडेट कर रहा है ... कई अन्य सुविधाएं लागू या आंशिक रूप से लागू की गई हैं।
मुझे जिस समस्या का सामना करना पड़ रहा है वह है कि पूर्ण यूआरएल नियंत्रक/एक्शन/पैरामीटर सिग्नलआर हब के अंदर कैसे प्राप्त करें?
जब मैं HttpContext.Current.Request.Url
का उपयोग करता हूं तो यूआरएल हमेशा /सिग्नल/कनेक्ट होता है।
नोट:
var hub = $.connection.myHub;
$.connection.hub.start();
_Layout.cshtml में है।
अद्यतन:
मैं
var location = '@HttpContext.Current.Request.Url';
var hub = $.connection.myHub;
$.connection.hub.start().done(function() {
hub.setLocation(location);
});
उपयोग करने के लिए कोशिश की है और स्थान सही ढंग से पारित कर दिया है, लेकिन मैं नहीं बाद में कनेक्ट() काम पर इसकी आवश्यकता है। क्या ऐसा करना संभव है?
अद्यतन 2:
यह दृष्टिकोण Connect()
रूप
var hub = $.connection.myHub;
$.connection.hub.start(function(){hub.setLocation(location)});
काम नहीं करता है से पहले कहा जाता है।
मेरे केंद्र में मेरे पास कई विधियां हैं लेकिन मैं Connect()
पर एक मान (मेरे मामले में एक स्थान) पास करना चाहता हूं, क्या यह संभव है?
public class MyHub : Hub, IDisconnect, IConnected
{
public Task Connect()
{
//do stuff here
//and i would like to have the **location** value
}
public Task Disconnect()
{
//do stuff here
}
}
अद्यतन 3
QueryString उपयोग से पहले Connect()
होता है डेटा भेजने के।
var location = '@HttpContext.Current.Request.Url';
var hub = $.connection.myHub;
$.connection.hub.qs = "location= + location;
$.connection.hub.start();
नमस्ते के लिए गैर आईआईएस की मेजबानी देखने के लिए, आईआईएस पर काम करेंगे ... आप अभी भी इस पर नज़र रखने के समाधान पर काम कर रहे हैं ... आप अपने कोड साझा करने बुरा? –
@jalchr मुझे कोई फर्क नहीं पड़ता लेकिन एनडीए होगा; (अगर आपके कोई प्रश्न हैं तो मैं कृपया सही दिशा में मदद/बिंदु करूंगा। –
टिप: उपयोगकर्ता ट्रैकिंग के लिए आपको यह सुनिश्चित करने की ज़रूरत है कि पृष्ठ को पूरी तरह से लोड करने से पहले सिग्नलर तुरंत कनेक्ट हो जाए संसाधन: 'waitForPageLoad'' तो सुनिश्चित करें कि आप इसे सेट करते हैं: http://stackoverflow.com/questions/32856436/signalr-is-slow-to-connect-from-javascript-client/32856492#32856492 –