添加钉钉发送提示

master
mzhifa 1 year ago
parent 23003d90ad
commit 693d89522c

@ -15,5 +15,10 @@ namespace StartServerWPF.Modules.Main
public string DataBase { get; set; } public string DataBase { get; set; }
public string TableName { get; set; } public string TableName { get; set; }
public string WebsocketUrl { get; set; } public string WebsocketUrl { get; set; }
public string Account { get; set; }
public string Pwd { get; set; }
} }
} }

@ -24,6 +24,7 @@ using System.Text.Json.Serialization;
using System.Text.Json; using System.Text.Json;
using System.Text.Encodings.Web; using System.Text.Encodings.Web;
using System.Text.Unicode; using System.Text.Unicode;
using System.Security.Principal;
namespace StartServerWPF.Modules.Main.ViewModels namespace StartServerWPF.Modules.Main.ViewModels
{ {
@ -54,6 +55,7 @@ namespace StartServerWPF.Modules.Main.ViewModels
this._websocket = websocket; this._websocket = websocket;
_websocket.WebSocketInit(sc.remoteDb.WebsocketUrl); _websocket.WebSocketInit(sc.remoteDb.WebsocketUrl);
CurrentItemsList = ApmsProcessSliceList; CurrentItemsList = ApmsProcessSliceList;
_websocket.SiginServer(sc.remoteDb.Account,sc.remoteDb.Pwd);
} }
@ -336,7 +338,7 @@ namespace StartServerWPF.Modules.Main.ViewModels
// btnSetParams.Enabled = false; // btnSetParams.Enabled = false;
timer1.Interval = TimeSpan.FromSeconds(ProMonInterval); timer1.Interval = TimeSpan.FromSeconds(ProMonInterval);
timer1.Start(); timer1.Start();
timer1.Tick += timer1_Tick;
ReciveDataSource.Clear(); ReciveDataSource.Clear();
} }
@ -453,6 +455,7 @@ namespace StartServerWPF.Modules.Main.ViewModels
public void InitializeParams() public void InitializeParams()
{ {
timer1.Interval = TimeSpan.FromSeconds(ProMonInterval); timer1.Interval = TimeSpan.FromSeconds(ProMonInterval);
timer1.Tick += timer1_Tick;
this.Message = "服务器版本:" + JsonParser.serverVision; this.Message = "服务器版本:" + JsonParser.serverVision;
IntervalTimesSource.Add(5); IntervalTimesSource.Add(5);
IntervalTimesSource.Add(10); IntervalTimesSource.Add(10);
@ -674,11 +677,10 @@ namespace StartServerWPF.Modules.Main.ViewModels
string logStr = DateTime.Now.ToString("s") + "\t服务器程序" + pro.ProName + "重启"; string logStr = DateTime.Now.ToString("s") + "\t服务器程序" + pro.ProName + "重启";
WriteSerLog(sc.vpnInfo.SystemLogPath + JsonParser.systemLogFileName, logStr); WriteSerLog(sc.vpnInfo.SystemLogPath + JsonParser.systemLogFileName, logStr);
string jsonStr= JsonSerializer.Serialize<CSDeviceWebhook>(new CSDeviceWebhook string jsonStr= JsonSerializer.Serialize(new CSDeviceWebhook
{ {
type= CSMessage.webhook, type= CSMessage.webhook,
message=logStr, message=logStr,
}, new JsonSerializerOptions }, new JsonSerializerOptions
{ {
// 整齐打印 // 整齐打印
@ -761,7 +763,7 @@ namespace StartServerWPF.Modules.Main.ViewModels
string logStr = DateTime.Now.ToString("s") + "\tVPN断开重连"; string logStr = DateTime.Now.ToString("s") + "\tVPN断开重连";
WriteSerLog(sc.vpnInfo.SystemLogPath + JsonParser.systemLogFileName, logStr); WriteSerLog(sc.vpnInfo.SystemLogPath + JsonParser.systemLogFileName, logStr);
string jsonStr = JsonSerializer.Serialize<CSDeviceWebhook>(new CSDeviceWebhook string jsonStr = JsonSerializer.Serialize(new CSDeviceWebhook
{ {
type = CSMessage.webhook, type = CSMessage.webhook,
message = logStr, message = logStr,

@ -1,9 +1,11 @@
using SuperSocket.ClientEngine; using StartServerWPF.Modules.Main.Model;
using SuperSocket.ClientEngine;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.Json;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using WebSocket4Net; using WebSocket4Net;
@ -13,59 +15,75 @@ namespace StartServerWPF.Modules.Main
public class WebsocketClient public class WebsocketClient
{ {
public WebSocket webSocket4Net = null; public WebSocket webSocket4Net = null;
public Action<ErrorEventArgs> WebsocketError;
public Action<string> WebSocketMessageReceived;
public void WebSocketInit(string url) public void WebSocketInit(string url)
{ {
Console.WriteLine("客户端"); Debug.WriteLine("客户端");
webSocket4Net = new WebSocket(url); webSocket4Net = new WebSocket(url);
webSocket4Net.Opened += WebSocket4Net_Opened; webSocket4Net.Opened += WebSocket4Net_Opened;
webSocket4Net.Error += new EventHandler<ErrorEventArgs>(WebSocket_Error); webSocket4Net.Error += new EventHandler<ErrorEventArgs>(WebSocket_Error);
webSocket4Net.MessageReceived += WebSocket4Net_MessageReceived; webSocket4Net.MessageReceived += WebSocket4Net_MessageReceived;
webSocket4Net.Open(); webSocket4Net.Open();
Console.WriteLine("客户端连接成功!"); Debug.WriteLine("客户端连接成功!");
Thread thread = new Thread(ClientSendHeartbeat);
thread.IsBackground = true; // thread.Start();
thread.Start();
// webSocket4Net.Dispose();
} }
public void SendMes(string str) public void SiginServer(string account,string password)
{ {
if (webSocket4Net.State == WebSocketState.Open) isHeartbeat = false;
{
webSocket4Net.Send(str); string jsonstr= JsonSerializer.Serialize(new CSUserSigin { type = CSMessage.sigin, utype = "device", account=account,password=password});
} SendMes(jsonstr);
Task.Run(async () =>{
await Task.Delay(2000);
isHeartbeat = true;
SendHeartbeat();
});
} }
public void Closed()
{
isHeartbeat = false;
}
private void ClientSendHeartbeat() public void SendMes(string message)
{ {
int i = 88; webSocket4Net.Send(message);
while (true) }
bool isHeartbeat = false;
private void SendHeartbeat()
{
while (isHeartbeat)
{ {
//Console.WriteLine($"客户端发送数据{i++}"); //Console.WriteLine($"客户端发送数据{i++}");
Thread.Sleep(TimeSpan.FromSeconds(2));
if (webSocket4Net.State == WebSocketState.Open) if (webSocket4Net.State == WebSocketState.Open)
{ {
webSocket4Net.Send("{\"type\":\"heartbeat\",\"utype\":\"device\",\"uid\":123}"); webSocket4Net.Send("{\"type\":\"heartbeat\",\"utype\":\"device\"}");
} }
else if (webSocket4Net.State == WebSocketState.Closed) else if (webSocket4Net.State == WebSocketState.Closed)
{ {
Thread.Sleep(TimeSpan.FromSeconds(5)); Thread.Sleep(TimeSpan.FromSeconds(10));
webSocket4Net.Open(); webSocket4Net.Open();
} }
Thread.Sleep(TimeSpan.FromSeconds(5));
} }
} }
private void WebSocket4Net_MessageReceived(object sender, MessageReceivedEventArgs e) private void WebSocket4Net_MessageReceived(object sender, MessageReceivedEventArgs e)
{ {
Debug.WriteLine($"服务端回复数据:{e.Message}"); WebSocketMessageReceived?.Invoke(e.Message);
} }
private void WebSocket4Net_Opened(object sender, EventArgs e) private void WebSocket4Net_Opened(object sender, EventArgs e)
{ {
// webSocket4Net.Send($"客户端准备发送数据!");
} }
void WebSocket_Error(object sender, ErrorEventArgs e) void WebSocket_Error(object sender, ErrorEventArgs e)
{ {
WebsocketError?.Invoke(e);
Debug.WriteLine("websocket_Error:" + e.Exception.ToString()); Debug.WriteLine("websocket_Error:" + e.Exception.ToString());
} }
} }

@ -6,7 +6,9 @@
"Password": "txgy1929", "Password": "txgy1929",
"DataBase": "txgymeisdb", "DataBase": "txgymeisdb",
"TableName": "event", "TableName": "event",
"WebsocketUrl": "ws://43.138.12.228/ws" "WebsocketUrl": "ws://43.138.12.228/ws",
"Account": "upclient",
"Pwd": "zgbj0010"
}, },
"vpnInfo": { "vpnInfo": {
"VpnName": "YUWU-VPN-BySM", "VpnName": "YUWU-VPN-BySM",

Loading…
Cancel
Save