通过我的 SignalR 程序,我让客户端调用服务器端方法。我的全局变量无法正常工作,所以我做了一个快速的小测试,我发现全局变量似乎每次都会被重置,我想知道我做错了什么以及是否可以阻止我的变量被重置。
JavaScript 方法:
$.connection.hub.start().done(function () {
$('#send').click(function () {
chat.server.send(0, document.getElementById("Name").value, document.getElementById("Content").value);//send eventually calls broadcastArray
});
});
集线器方法:
int i = 0;
public void BroadcastArray()
{
var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
hubContext.Clients.All.broadcastArray(messageArr);
i = i + 1;
}
无论我调用该方法多少次,i
总是返回 1,如何阻止变量被重置?有没有办法在集线器类中执行此操作,或者我可以将变量存储在不同的类中吗?我不太确定该怎么做。
最佳答案
我要做的第一件事就是将其放入 try/catch 中,看看它在到达该行之前是否抛出错误。如果您的 hubcontext 没有正确返回,我可能会默默地抛出异常。
其次,您的集线器是静态类吗?如果不了解您如何设置集线器,就很难判断可能出了什么问题。
关于javascript - SignalR 变量正在重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38571891/