ASP.NET MVC uygulamaları için SignalR öğrenmek için eğlenceli bir proje olarak SignalR kullanarak bir kullanıcı izleme çözümü geliştiriyorum.SinyalR hub içinde tam URL alın
Şu anda kayıtlı kullanıcıları ve belirli bir sayfada ne kadar beklediklerini takip edebiliyorum. Başka bir sayfaya geçerlerse, bunu ve SinyalR'nin resetleri güncellediği zamanlayıcıyı izlerim ... Diğer birçok özellik uygulanır veya kısmen uygulanır.
Karşılaştığım sorun, DirectRD Denetleyici/İşlem/Parametre SinyalR hub içinde nasıl elde edilir?
HttpContext.Current.Request.Url
'u kullandığımda, url her zaman /signalr/connect'dir.
NOT:
var hub = $.connection.myHub;
$.connection.hub.start();
_Layout.cshtml içindedir.
GÜNCELLEME:
Ben
var location = '@HttpContext.Current.Request.Url';
var hub = $.connection.myHub;
$.connection.hub.start().done(function() {
hub.setLocation(location);
});
kullanmayı denedim Ve konumu doğru geçirilir ama en geç Bağlan() görev olması gerekiyor. Bunu yapmak mümkün mü?
GÜNCELLEME 2: Bu yaklaşım Connect()
olarak
var hub = $.connection.myHub;
$.connection.hub.start(function(){hub.setLocation(location)});
çalışmıyor
önce denir.
Merkezimde birkaç yöntem var ancak bir değeri (konumumda) Connect()
'a aktarmak istiyorum, bu mümkün mü? Connect()
oluşmadan önce
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
}
}
Güncelleme 3
Kullanım QueryString veri iletmek için.
var location = '@HttpContext.Current.Request.Url';
var hub = $.connection.myHub;
$.connection.hub.qs = "location= + location;
$.connection.hub.start();
merhaba olmayan IIS barındıran bir görünüm için, IIS üzerinde çalışacak onun kodunu paylaşan mahzuru yapmak ... hala ... bu izleme çözüm üzerinde çalışıyoruz? –
@jalchr NDA'nın aklına bile gelmeyecek; (Eğer herhangi bir sorunuz varsa lütfen doğru yönde yardımcı olacağım/işaret edeceğim. –
ipucu: kullanıcı takibi için, sayfanın tamamen yüklenmesinden hemen önce SignalR'nin bağlandığından emin olmalısınız. resources: 'waitForPageLoad' bu yüzden şunu ayarladığınızdan emin olun: http://stackoverflow.com/questions/32856436/signalr-is-slow-to-connect-from-javascript-client/32856492#32856492 –