gpt4 book ai didi

c# - 如何在 SignalR 中将参数传递给集线器?

转载 作者:行者123 更新时间:2023-12-01 19:52:39 25 4
gpt4 key购买 nike

我在 SignalR hub 中的代码:

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 位于 session 对象中,我需要以某种方式在 SignalR 中心中使用它。

最佳答案

除了已接受的答案之外,我还使用它将多个查询字符串从客户端传递到集线器:在客户端:

Dictionary<string, string> queryString = new Dictionary<string, string>();
queryString.Add("key1", "value1");
queryString.Add("key2", "value2");
hubConnection = new HubConnection("http://localhost:49493/signalr/hubs", queryString);

---其余代码--------

在 Hub 类中:

public override Task OnConnected()
{
var value1 = Convert.ToString(Context.QueryString["key1"]);
var value2 = Convert.ToString(Context.QueryString["key2"]);
return base.OnConnected();
}

我正在使用 c# 的 Windows 窗体应用程序中使用版本“2.3.0.0”的“Microsoft.AspNet.SignalR.Client”库。

关于c# - 如何在 SignalR 中将参数传递给集线器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22183176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com