修复进程间通讯异常问题
This commit is contained in:
parent
8cfae665be
commit
b9a7b1350b
|
@ -40,8 +40,4 @@
|
||||||
<None Remove=".gitignore" />
|
<None Remove=".gitignore" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Service\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
|
|
||||||
public class Constants
|
public class Constants
|
||||||
{
|
{
|
||||||
public const string SN = "5506771257";
|
public const string SN = "G5506771257";
|
||||||
}
|
}
|
|
@ -1,6 +1,9 @@
|
||||||
using MasstransferCommon.Model.Constant;
|
using MasstransferCommon.Events;
|
||||||
|
using MasstransferCommon.Model.Entity;
|
||||||
|
using MasstransferCommunicate.Mqtt.Client;
|
||||||
using MasstransferCommunicate.Process.Client;
|
using MasstransferCommunicate.Process.Client;
|
||||||
using MasstransferInfrastructure.Database.Sqlite;
|
using MasstransferInfrastructure.Database.Sqlite;
|
||||||
|
using MasstransferInfrastructure.Mqtt.Model;
|
||||||
|
|
||||||
namespace MasstransferExporter;
|
namespace MasstransferExporter;
|
||||||
|
|
||||||
|
@ -10,31 +13,25 @@ class Program
|
||||||
|
|
||||||
public static async Task Main()
|
public static async Task Main()
|
||||||
{
|
{
|
||||||
// var mqttParams = Db.Query<MqttParams>("select * from mqtt_params").FirstOrDefault();
|
var mqttParams = Db.Query<MqttParams>("select * from mqtt_params").FirstOrDefault();
|
||||||
//
|
|
||||||
// // 启动mqtt连接
|
|
||||||
// await MessageQueueHelper.InitConnect(new MqttConnectOptions()
|
|
||||||
// {
|
|
||||||
// ServerAddress = mqttParams.ServerAddress,
|
|
||||||
// Port = mqttParams.Port,
|
|
||||||
// UserName = mqttParams.UserName,
|
|
||||||
// Password = mqttParams.Password
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// // 启动与主程序的通信
|
|
||||||
// await ProcessCommunicator.Connect();
|
|
||||||
//
|
|
||||||
// // 启动完成后,广播启动通知
|
|
||||||
// EventBus<bool>.Publish(EventType.StartUp, true);rewrwe
|
|
||||||
|
|
||||||
|
// 启动mqtt连接
|
||||||
|
await MessageQueueHelper.InitConnect(new MqttConnectOptions()
|
||||||
|
{
|
||||||
|
ServerAddress = mqttParams.ServerAddress,
|
||||||
|
Port = mqttParams.Port,
|
||||||
|
UserName = mqttParams.UserName,
|
||||||
|
Password = mqttParams.Password
|
||||||
|
});
|
||||||
|
|
||||||
|
// 启动与主程序的通信
|
||||||
ProcessHelper.Init();
|
ProcessHelper.Init();
|
||||||
|
|
||||||
while (Console.ReadLine() is { } input)
|
// 启动完成后,广播启动通知
|
||||||
{
|
EventBus<bool>.Publish(EventType.StartUp, true);
|
||||||
ProcessHelper.Send(ProcessTopics.TestEvent, input);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Console.WriteLine("按任意键退出");
|
|
||||||
// Console.ReadKey();
|
Console.WriteLine("按任意键退出");
|
||||||
|
Console.ReadKey();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Database\"/>
|
<Folder Include="Database\"/>
|
||||||
<Folder Include="Mqtt\Service\"/>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
using System.IO.Pipes;
|
using System.IO.Pipes;
|
||||||
|
using MasstransferCommon.Utils;
|
||||||
|
|
||||||
namespace MasstransferCommunicate.Process.Client;
|
namespace MasstransferCommunicate.Process.Client;
|
||||||
|
|
||||||
internal class PipeClient(string pipeName)
|
internal class PipeClient
|
||||||
{
|
{
|
||||||
private NamedPipeClientStream? _pipeClient;
|
private NamedPipeClientStream? _pipeClient;
|
||||||
|
|
||||||
|
private const string KeyPath = @"Software\Masstransfer\Security";
|
||||||
|
|
||||||
public event Action<string> MessageReceived;
|
public event Action<string> MessageReceived;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -25,7 +28,17 @@ internal class PipeClient(string pipeName)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_pipeClient = new NamedPipeClientStream(".", pipeName, PipeDirection.InOut, PipeOptions.Asynchronous);
|
Console.WriteLine("正在查找服务端管道id");
|
||||||
|
var pipeName = RegistryHelper.ReadValue(KeyPath, "PipeId");
|
||||||
|
if (pipeName == null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("无法找到服务端管道id,等待重试");
|
||||||
|
Thread.Sleep(1000);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
_pipeClient = new NamedPipeClientStream(".", (string)pipeName, PipeDirection.InOut,
|
||||||
|
PipeOptions.Asynchronous);
|
||||||
Console.WriteLine("正在连接服务器");
|
Console.WriteLine("正在连接服务器");
|
||||||
_pipeClient.Connect(5000);
|
_pipeClient.Connect(5000);
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class ProcessHelper
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
if (_pipe != null) return;
|
if (_pipe != null) return;
|
||||||
_pipe = new PipeClient("MasstransferPipe");
|
_pipe = new PipeClient();
|
||||||
_pipe.Start();
|
_pipe.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue