我正面临 SignalR 库的一个独特问题。我正在将此库用于在线一分钱拍卖门户。
当我向所有连接的用户广播投标人名称和最高投标人数量时,我会遇到时间延迟。
但是,相同的代码在本地服务器上运行良好。没有时间滞后。
据我了解,目前数据库中只有 100 个拍卖,将最新的投标金额和用户名广播给所有用户并确保连接的用户能够看到更新的最新投标金额和投标人姓名。
有时我看到这在服务器上有效,但是当我尝试更改浏览器的选项卡(我正在使用谷歌浏览器)并等待几秒钟时,我遇到了这个时间延迟。
var context = new PetaPoco.Database("DataContext");
context.Execute("EXEC udsp_TimerUpdate");
IConnectionManager connectionManager = AspNetHost.DependencyResolver.Resolve<IConnectionManager>();
dynamic clients = connectionManager.GetClients<Chat>();
clients.gettime();
var tmr = context.Query<CurrentBids>(";EXEC udsp_CurrentBidsEndBids;").ToList();
if (tmr != null)
{
foreach (var t in tmr)
{
////Put code here for Shopping Cart
context.Execute(";EXEC udsp_AddToCart @0, @1", t.AuctionId, t.BidderName);
clients.sold("00:00:00", Int32.Parse(t.AuctionId.ToString()), t.BidderName, t.BidAmount);
}
}
var autbid = context.Query<CurrentBids>(";EXEC udsp_CurrentBidsAuto;").ToList();
Random rand = new Random();
foreach (var auct in autbid)
{
var splt = auct.Timer.Split(':');
if (rand.Next(2, int.Parse(splt[2]) + 1) == int.Parse(splt[2]))
{
Chat.AutoBids(auct.AuctionId);
}
}