| | |
| | | using NLog.Targets; |
| | | using NLog; |
| | | using ServiceStack.Messaging.Rcon; |
| | | using System.Runtime.ExceptionServices; |
| | | using System.Runtime.InteropServices; |
| | | |
| | | namespace GZ.Projects.HnSx |
| | | { |
| | |
| | | { |
| | | |
| | | } |
| | | public void TaskEverythingRun() |
| | | |
| | | public async void ThreadwebSoc() |
| | | { |
| | | List<object> list = new List<object>(); |
| | | //read Alldata from database |
| | | //å°æ°æ®ç¼åå°å
åã |
| | | try |
| | | { |
| | | Thread.Sleep(1000); |
| | | while (true) |
| | | { |
| | | if (/*list.Count > 0 && */WebSocketClientWithReconnect.GetWebSocketState() == WebSocketState.Open) |
| | | for (int i = 60000; i < 70000; i++) |
| | | { |
| | | Thread.Sleep(1000); |
| | | Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>GGG{i}"); |
| | | var b = WebSocketClientWithReconnect.Instance?.SendAsync($"He >>GGG{i}").Result; |
| | | Console.WriteLine("åé宿ï¼ï¼" + b); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message, ex); |
| | | } |
| | | } |
| | | public async Task TaskEverythingRun() |
| | | { |
| | | var host = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()); |
| | | foreach (var ip in host.AddressList) |
| | |
| | | //new HttpServer(ip.ToString()).HttpServerRun(); |
| | | //new TcpServer(ip.ToString()); |
| | | //var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync(); |
| | | var client = new WebSocketClientWithReconnect($"ws://{ip.ToString()}:8809/socket")/*.StartAsync()*/; |
| | | //Task.Run(async () => |
| | | //{ |
| | | client.StartAsync(); |
| | | Task.Run(async () => |
| | | { |
| | | while (true) |
| | | { |
| | | for (int i = 0; i < 10000; i++) |
| | | { |
| | | Thread.Sleep(1000); |
| | | Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>Server{i}"); |
| | | await client.SendAsync($"Hello Server{i}!"); |
| | | } |
| | | } |
| | | }); |
| | | //Task.Run(async () => |
| | | //{ |
| | | // while (true) |
| | | // { |
| | | // for (int i = 60000; i < 70000; i++) |
| | | // { |
| | | // Thread.Sleep(1000); |
| | | // Console.WriteLine($"{DateTime.Now.ToString("HH:mm:ss.fff")}>>>GGG{i}"); |
| | | // await client.SendAsync($"Hello GGG{i}!"); |
| | | // } |
| | | // } |
| | | //}); |
| | | //}); |
| | | new WebSocketClientWithReconnect($"ws://{ip.ToString()}:8809/socket").StartAsync(); |
| | | |
| | | break; |
| | | } |
| | | } |
| | |
| | | |
| | | public class WebSocketClientWithReconnect |
| | | { |
| | | private ClientWebSocket _webSocket; |
| | | public static ClientWebSocket _webSocket; |
| | | private static WebSocketClientWithReconnect _instance; |
| | | private readonly Uri _serverUri; |
| | | private readonly CancellationTokenSource _cts = new CancellationTokenSource(); |
| | | private readonly int _reconnectDelayMs; |
| | |
| | | _serverUri = new Uri(serverUrl); |
| | | _reconnectDelayMs = reconnectDelayMs; |
| | | } |
| | | public static WebSocketClientWithReconnect Instance |
| | | { |
| | | get |
| | | { |
| | | return _instance; |
| | | } |
| | | } |
| | | |
| | | public static WebSocketState GetWebSocketState() => _webSocket != null ? _webSocket.State : WebSocketState.Closed; |
| | | public async Task StartAsync() |
| | | { |
| | | _instance = this; |
| | | while (!_cts.IsCancellationRequested) |
| | | { |
| | | try |
| | |
| | | } |
| | | } |
| | | |
| | | public async Task SendAsync(string message) |
| | | public async Task<bool> SendAsync(string message) |
| | | { |
| | | if (_webSocket?.State != WebSocketState.Open) |
| | | { |
| | |
| | | |
| | | var bytes = System.Text.Encoding.UTF8.GetBytes(message); |
| | | await _webSocket.SendAsync(new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, _cts.Token); |
| | | |
| | | return true; |
| | | } |
| | | } |
| | | |
| | |
| | | try |
| | | { |
| | | #region [èæ¬][20250704090126015][ä¸å¡é»è¾.Program2] |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadwebSoc"); |
| | | #endregion [èæ¬][20250704090126015][ä¸å¡é»è¾.Program2] |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Conn.logé»è®¤æ¥å¿.Error(ex.ToString()); |
| | | } |
| | | finally |
| | | { |
| | | System.Threading.Thread.Sleep(10000); |
| | | } |
| | | } |
| | | ExitJudgeStack.TryPop(out int exitJudgeVal); |
| | | }); |
| | | /// <summary> |
| | | /// ç¨åºç段:Program2 |
| | | /// æè¿°: |
| | | /// </summary> |
| | | System.Threading.Tasks.Task.Factory.StartNew(() => |
| | | { |
| | | System.Threading.Thread.CurrentThread.IsBackground = true; |
| | | ExitJudgeStack.Push(0); |
| | | //ä¸ç´æ§è¡ï¼ç´å°æ»¡è¶³ç»ææ¡ä»¶ |
| | | while (true) |
| | | { |
| | | if (IsExitApp) { break; } |
| | | try |
| | | { |
| | | #region [èæ¬][20250704090126015][ä¸å¡é»è¾.Program2] |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ThreadSettingInit", new object[] { tag }); |
| | | #endregion [èæ¬][20250704090126015][ä¸å¡é»è¾.Program2] |
| | | } |
| | |
| | | "DevelopVersion": "1.0.6.0", |
| | | "Encode": "1bKKzS3nmbstyerHBqNS0Q==", |
| | | "CreationTime": "0001-01-01 00:00:00", |
| | | "LastWriteTime": "2025-07-04 11:18:35" |
| | | "LastWriteTime": "2025-07-04 14:55:05" |
| | | } |
| | |
| | | /// </summary> |
| | | public class Conn |
| | | { |
| | | public static GZ.Modular.Log.ILogger é»è®¤ä¸å¡æ¥å¿ = null; |
| | | public static GZ.Modular.Redis.RedisTagHelper é»è®¤Redis = new GZ.Modular.Redis.RedisTagHelper(é»è®¤ä¸å¡æ¥å¿); |
| | | public static GZ.Modular.Log.ILogger logé»è®¤æ¥å¿ = null; |
| | | public static GZ.Modular.Redis.RedisTagHelper é»è®¤Redis = new GZ.Modular.Redis.RedisTagHelper(logé»è®¤æ¥å¿); |
| | | public Conn() |
| | | { |
| | | string[] allKeys = System.Configuration.ConfigurationManager.AppSettings.AllKeys; |
| | | é»è®¤ä¸å¡æ¥å¿ = new GZ.Modular.Log.NLogger("NLogger",7,"",true,"mongodb://localhost:27017?connectTimeoutMS=3000&socketTimeoutMS=5000","HnSx"); |
| | | logé»è®¤æ¥å¿ = new GZ.Modular.Log.NLogger("NLogger",7,"",true,"mongodb://localhost:27017?connectTimeoutMS=3000&socketTimeoutMS=5000","HnSx"); |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | ], |
| | | "CreationTime": "2025-07-01 10:23:43", |
| | | "LastWriteTime": "2025-07-04 11:04:09", |
| | | "LastWriteTime": "2025-07-04 14:55:05", |
| | | "HasSaved": true |
| | | } |
| | |
| | | "ParentID": "", |
| | | "Children": [ |
| | | { |
| | | "ID": "20250701110610426", |
| | | "Name": "Program1", |
| | | "Desc": "", |
| | | "Content": "AutoThread.InvokeMethod(AutoThread.Instance, \"TaskEverythingRun\");", |
| | | "ContentCopy": "AutoThread.InvokeMethod(AutoThread.Instance, \"TaskEverythingRun\");", |
| | | "ParentID": "20250701102338326", |
| | | "Children": [], |
| | | "Type": "Program", |
| | | "Property": { |
| | | "SyncExec": "True", |
| | | "RepeatExec": "None", |
| | | "ExceCount": 1, |
| | | "ExceInternal": 3000, |
| | | "StartCondition": { |
| | | "Type": "View", |
| | | "Event": "", |
| | | "Expression": "", |
| | | "Judge": "", |
| | | "Command": {}, |
| | | "HmiEvent": { |
| | | "20250704082900797": [ |
| | | "Open" |
| | | ] |
| | | } |
| | | }, |
| | | "EndCondition": { |
| | | "Type": "None", |
| | | "Event": "", |
| | | "Expression": "", |
| | | "Judge": "", |
| | | "Command": {}, |
| | | "HmiEvent": {} |
| | | } |
| | | }, |
| | | "FullName": "ä¸å¡é»è¾.Program1", |
| | | "ParentFullName": "ä¸å¡é»è¾", |
| | | "Enabled": "Enabled" |
| | | }, |
| | | { |
| | | "ID": "20250704090126015", |
| | | "Name": "Program2", |
| | | "Desc": "", |
| | | "Name": "åå§åé
ç½®", |
| | | "Desc": "exec", |
| | | "Content": "AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadSettingInit\", new object[] { tag });", |
| | | "ContentCopy": "AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadSettingInit\", new object[] { tag });", |
| | | "ParentID": "20250701102338326", |
| | |
| | | "HmiEvent": {} |
| | | } |
| | | }, |
| | | "FullName": "ä¸å¡é»è¾.Program2", |
| | | "FullName": "ä¸å¡é»è¾.åå§åé
ç½®", |
| | | "ParentFullName": "ä¸å¡é»è¾", |
| | | "Enabled": "Enabled" |
| | | }, |
| | | { |
| | | "ID": "20250701110610426", |
| | | "Name": "å¯å¨è¿æ¥æå¡", |
| | | "Desc": "æ¯å¦tcp http å websocket", |
| | | "Content": "AutoThread.InvokeMethod(AutoThread.Instance, \"TaskEverythingRun\");", |
| | | "ContentCopy": "AutoThread.InvokeMethod(AutoThread.Instance, \"TaskEverythingRun\");", |
| | | "ParentID": "20250701102338326", |
| | | "Children": [], |
| | | "Type": "Program", |
| | | "Property": { |
| | | "SyncExec": "True", |
| | | "RepeatExec": "None", |
| | | "ExceCount": 1, |
| | | "ExceInternal": 3000, |
| | | "StartCondition": { |
| | | "Type": "View", |
| | | "Event": "", |
| | | "Expression": "", |
| | | "Judge": "", |
| | | "Command": {}, |
| | | "HmiEvent": { |
| | | "20250704082900797": [ |
| | | "Open" |
| | | ] |
| | | } |
| | | }, |
| | | "EndCondition": { |
| | | "Type": "None", |
| | | "Event": "", |
| | | "Expression": "", |
| | | "Judge": "", |
| | | "Command": {}, |
| | | "HmiEvent": {} |
| | | } |
| | | }, |
| | | "FullName": "ä¸å¡é»è¾.å¯å¨è¿æ¥æå¡", |
| | | "ParentFullName": "ä¸å¡é»è¾", |
| | | "Enabled": "Enabled" |
| | | }, |
| | | { |
| | | "ID": "20250704145122680", |
| | | "Name": "é«éæ«ç åæ£æ¨¡å", |
| | | "Desc": "1", |
| | | "Content": "AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadwebSoc\");", |
| | | "ContentCopy": "AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadwebSoc\");", |
| | | "ParentID": "20250701102338326", |
| | | "Children": [], |
| | | "Type": "Program", |
| | | "Property": { |
| | | "SyncExec": "False", |
| | | "RepeatExec": "Until", |
| | | "ExceCount": 1, |
| | | "ExceInternal": 3000, |
| | | "StartCondition": { |
| | | "Type": "View", |
| | | "Event": "", |
| | | "Expression": "", |
| | | "Judge": "", |
| | | "Command": {}, |
| | | "HmiEvent": { |
| | | "20250704082900797": [ |
| | | "Open" |
| | | ] |
| | | } |
| | | }, |
| | | "EndCondition": { |
| | | "Type": "None", |
| | | "Event": "", |
| | | "Expression": "", |
| | | "Judge": "", |
| | | "Command": {}, |
| | | "HmiEvent": {} |
| | | } |
| | | }, |
| | | "FullName": "ä¸å¡é»è¾.é«éæ«ç åæ£æ¨¡å", |
| | | "ParentFullName": "ä¸å¡é»è¾", |
| | | "Enabled": "Enabled" |
| | | } |
| | |
| | | } |
| | | ], |
| | | "CreationTime": "2025-07-01 10:23:38", |
| | | "LastWriteTime": "2025-07-04 11:04:09", |
| | | "LastWriteTime": "2025-07-04 14:55:05", |
| | | "HasSaved": true |
| | | } |