diff --git a/Nop.Plugin.Misc.AuctionPlugin/Content/Js/LiveAnnouncement.js b/Nop.Plugin.Misc.AuctionPlugin/Content/Js/LiveAnnouncement.js index ad64e21..24e046f 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Content/Js/LiveAnnouncement.js +++ b/Nop.Plugin.Misc.AuctionPlugin/Content/Js/LiveAnnouncement.js @@ -1,6 +1,8 @@ $(function () { console.log("signalRJs Starts"); - window.RequestCount = 1; + + window.RequestCount = 0; + // AuctionStatus Enum window.AuctionStatus = Object.freeze({ None: 0, @@ -41,12 +43,14 @@ } connection.onclose(function () { + window.RequestCount = 0; start(); }); // Global function to send a message to the server window.sendMessageToServer = function (messageType, senderId, data) { window.RequestCount++; + var messageWrapper = { MessageType: messageType, SenderId: senderId, @@ -58,11 +62,11 @@ connection.invoke("ReceiveMessageFromClient", messageWrapper) .then(() => { - console.log("Message successfully sent to the server."); + console.log("Message successfully sent to the server." + messageType); }) .catch(err => { - window.RequestCount--; - console.error("Error sending message to the server:", err); + //window.RequestCount--; + console.error("Error sending message to the server:" + messageType, err); }); }; diff --git a/Nop.Plugin.Misc.AuctionPlugin/Hubs/AuctionHub.cs b/Nop.Plugin.Misc.AuctionPlugin/Hubs/AuctionHub.cs index 2fcd446..45e77d8 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Hubs/AuctionHub.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Hubs/AuctionHub.cs @@ -1,19 +1,7 @@ -using System; -using Microsoft.AspNetCore.SignalR; - -using System.Threading.Tasks; +using Microsoft.AspNetCore.SignalR; using Nop.Services.Logging; using Nop.Plugin.Misc.AuctionPlugin.Hubs.Messages; -using Nop.Plugin.Misc.AuctionPlugin.Models; -using Newtonsoft.Json.Serialization; -using Newtonsoft.Json; -using Nop.Web.Models.Media; -using Nop.Services.Catalog; using Nop.Plugin.Misc.AuctionPlugin.Services; -using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities; -using Newtonsoft.Json.Linq; -using static LinqToDB.Reflection.Methods.LinqToDB.Insert; -using Mango.Nop.Services; namespace Nop.Plugin.Misc.AuctionPlugin.Hubs { @@ -35,7 +23,8 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Hubs if (httpContext == null) await logger.ErrorAsync($"AuctionHub.OnConnectedAsync(); (httpContext == null); connectionId: {connectionId}"); else { - if (sessionService.GetOrCreateSessionItem(httpContext.Session.Id) == null) await logger.ErrorAsync($"AuctionHub.OnConnectedAsync(); (sessionItem == null); connectionId: {connectionId}; sessionId: {httpContext.Session.Id}"); + if (sessionService.GetOrCreateSessionItem(httpContext.Session.Id) == null) + await logger.ErrorAsync($"AuctionHub.OnConnectedAsync(); (sessionItem == null); connectionId: {connectionId}; sessionId: {httpContext.Session.Id}"); var userName = httpContext.Request.Query["ConnectionId"]; if (!string.IsNullOrEmpty(userName)) @@ -56,22 +45,25 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Hubs public async Task ReceiveRegularMessageFromClient(string message) { - //await _logger.InformationAsync($"AuctionHub.OnConnectedAsync(); message: {message}"); + IncrementRequestCount(); - if (sessionService.TryGetSessionItem(Context.GetHttpContext().Session.Id, out var sessionItem)) sessionItem.RequestCount++; - - Console.WriteLine($"Received message: {message}"); await Clients.All.SendAsync("Send", message); } public async Task ReceiveMessageFromClient(MessageWrapper message) { - // Log the message type and data - //await _logger.InformationAsync($"AuctionHub.OnConnectedAsync(); Received message of type: {message.MessageType}"); - - if (sessionService.TryGetSessionItem(Context.GetHttpContext().Session.Id, out var sessionItem)) sessionItem.RequestCount++; - + var sessionItem = IncrementRequestCount(); await signalRMessageHandler.HandleMessage(message, sessionItem, Context.ConnectionId); } + + private SessionItem IncrementRequestCount() + { + SessionItem sessionItem = null; + + var httpContext = Context.GetHttpContext(); + if (httpContext != null && sessionService.TryGetSessionItem(httpContext.Session.Id, out sessionItem)) sessionItem.RequestCount++; + + return sessionItem; + } } } diff --git a/Nop.Plugin.Misc.AuctionPlugin/Views/PublicProductBidBox.cshtml b/Nop.Plugin.Misc.AuctionPlugin/Views/PublicProductBidBox.cshtml index 4deeb73..243eefc 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Views/PublicProductBidBox.cshtml +++ b/Nop.Plugin.Misc.AuctionPlugin/Views/PublicProductBidBox.cshtml @@ -212,7 +212,7 @@ } console.log("bidBoxPageViewModel " + bidBoxPageViewModel); console.log(bidBoxPageViewModel.WidgetZone); - console.log(typeof sendMessageToServer); + //console.log(typeof sendMessageToServer); $("#signalRBidButton").on("click", function () { @@ -339,7 +339,7 @@ var revertButtonElement = document.getElementById("signalRRevertBidButton"); revertButtonElement.disabled = true; - sendMessageServer("RevertAuctionBidRequest", bidBoxPageViewModel.ProductToAuctionId); + sendMessageToServer("RevertAuctionBidRequest", bidBoxPageViewModel.ProductToAuctionId); }