From 96bfcd8a3c8a5f7d383d2c890e0c9b59ee34b7c1 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 01 十一月 2025 19:22:35 +0800
Subject: [PATCH] 优化代码
---
新建文件夹/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