我在SignalR樞紐代碼:如何在SignalR中傳遞參數到集線器?
public class AlertHub : Hub
{
public static readonly System.Timers.Timer _Timer = new System.Timers.Timer();
static AlertHub()
{
_Timer.Interval = 60000;
_Timer.Elapsed += TimerElapsed;
_Timer.Start();
}
static void TimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//Random rnd = new Random();
//int i = rnd.Next(0,2);
Alert alert = new Alert();
i = alert.CheckForNewAlerts(EmpId);
var hub = GlobalHost.ConnectionManager.GetHubContext("AlertHub");
hub.Clients.All.Alert(i);
}
}
不知怎的,我需要通過EMPID參數。如何做到這一點?
一些更多的客戶的詳細資料: 在我的aspx頁面我有以下代碼:
<script type="text/javascript">
$(function() {
var alert = $.connection.alertHub;
alert.client.Alert = function (msg) {
if (msg == 1) {
$("#HyperLink1").show();
$("#HyperLink2").hide();
}
else {
$("#HyperLink1").hide();
$("#HyperLink2").show();
}
//$("#logUl").append("<li>" + msg + "</li>");
};
$.connection.hub.start();
});
</script>
在ASPX頁面,我的EmpID是在會話對象,我需要在SignalR以某種方式使用它樞紐。
'EmpId'從哪裏來? – devshorts
這就是我需要通過的,但我很無聊,在哪裏以及在哪裏做到這一點。 – WinFXGuy
我不確定我關注。這個屬性意味着什麼,即使你知道如何通過它,你也可以在哪裏訪問它?它可以從其他地方暴露嗎?您無法在構造函數中傳遞任何內容,因爲您不負責創建Hub。任何你想讓集線器擁有它的東西都需要知道,或者從其他地方拉出來。 – devshorts