From 5b8bf171b9afda52fa366a72e54eedbd9e6d4d17 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期六, 01 十一月 2025 19:54:25 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/FangCangZhiNeng

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs |   66 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 1 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
index a389508..07e73f2 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_Core/Extensions/WebSocketHostedService.cs"
@@ -2,6 +2,7 @@
 using HslCommunication.WebSocket;
 using Microsoft.Extensions.Hosting;
 using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
 using Org.BouncyCastle.Asn1.Ocsp;
 using SqlSugar.Extensions;
 using System;
@@ -10,20 +11,74 @@
 using System.Text;
 using System.Text.Json;
 using System.Threading.Tasks;
+using WIDESEA_Core.Caches;
+using WIDESEA_Core.Helper;
+using WIDESEA_Core.Seed;
 
 namespace WIDESEA_Core
 {
     public class WebSocketHostedService : IHostedService
     {
+        private readonly DBContext _dbContext;
+        private readonly ICacheService _cacheService;
         private readonly WebSocketServer _webSocketServer;
 
-        public WebSocketHostedService(WebSocketServer webSocketServer)
+        public WebSocketHostedService(DBContext dbContext, ICacheService cacheService, WebSocketServer webSocketServer)
         {
             _webSocketServer = webSocketServer;
+            _dbContext = dbContext;
+            _cacheService = cacheService;
+            _webSocketServer.OnClientConnected += webSocketServer_OnClientConnected;
+        }
+
+        private void webSocketServer_OnClientConnected(WebSocketSession session)
+        {
+            string MessageInfo = _cacheService.Get("MessageInfo");
+            if (!string.IsNullOrEmpty(MessageInfo))
+            {
+                List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+                if (messages != null && messages.Count > 0)
+                {
+                    foreach (var item in messages)
+                    {
+                        object obj = new
+                        {
+                            title = item.MessageGroupBy,
+                            name = item.MessageName,
+                            message = item.MessageInfo,
+                            date = DateTime.Now.ToString(),
+                        };
+                        //_webSocketServer.PublishAllClientPayload(obj.Serialize());
+                        _webSocketServer.SendClientPayload(session, obj.Serialize());
+                    }
+                }
+            }
         }
 
         public async Task StartAsync(CancellationToken cancellationToken)
         {
+            //WebSocketSession? webSocketSession = _webSocketServer.OnlineSessions.FirstOrDefault(x => x.Url.Contains(App.User.UserName));
+            //string MessageInfo = _cacheService.Get("MessageInfo");
+            //if (!string.IsNullOrEmpty(MessageInfo))
+            //{
+            //    List<Message>? messages = JsonConvert.DeserializeObject<List<Message>>(MessageInfo);
+            //    if (messages != null && messages.Count > 0)
+            //    {
+            //        foreach (var item in messages)
+            //        {
+            //            object obj = new
+            //            {
+            //                title = item.MessageGroupBy,
+            //                name = item.MessageName,
+            //                message = item.MessageInfo,
+            //                date = item.Date,
+            //            };
+            //            //_webSocketServer.PublishAllClientPayload(obj.Serialize());
+            //            if (webSocketSession != null)
+            //                _webSocketServer.SendClientPayload(webSocketSession, obj.Serialize());
+            //        }
+            //    }
+            //}
             await Task.CompletedTask;
         }
 
@@ -31,5 +86,14 @@
         {
             await Task.CompletedTask;
         }
+
+        public class Message
+        {
+            public int Id { get; set; }
+            public string MessageGroupBy { get; set; }
+            public string MessageName { get; set; }
+            public string MessageInfo { get; set; }
+            public DateTime Date { get; set; }
+        }
     }
 }

--
Gitblit v1.9.3