修复进程间通讯异常问题
This commit is contained in:
parent
8cfae665be
commit
b9a7b1350b
|
@ -40,8 +40,4 @@
|
|||
<None Remove=".gitignore" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Service\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
|
||||
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 MasstransferInfrastructure.Database.Sqlite;
|
||||
using MasstransferInfrastructure.Mqtt.Model;
|
||||
|
||||
namespace MasstransferExporter;
|
||||
|
||||
|
@ -10,31 +13,25 @@ class Program
|
|||
|
||||
public static async Task Main()
|
||||
{
|
||||
// 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
|
||||
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
|
||||
});
|
||||
|
||||
// 启动与主程序的通信
|
||||
ProcessHelper.Init();
|
||||
|
||||
while (Console.ReadLine() is { } input)
|
||||
{
|
||||
ProcessHelper.Send(ProcessTopics.TestEvent, input);
|
||||
}
|
||||
// 启动完成后,广播启动通知
|
||||
EventBus<bool>.Publish(EventType.StartUp, true);
|
||||
|
||||
// Console.WriteLine("按任意键退出");
|
||||
// Console.ReadKey();
|
||||
|
||||
Console.WriteLine("按任意键退出");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
<ItemGroup>
|
||||
<Folder Include="Database\"/>
|
||||
<Folder Include="Mqtt\Service\"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
using System.IO.Pipes;
|
||||
using MasstransferCommon.Utils;
|
||||
|
||||
namespace MasstransferCommunicate.Process.Client;
|
||||
|
||||
internal class PipeClient(string pipeName)
|
||||
internal class PipeClient
|
||||
{
|
||||
private NamedPipeClientStream? _pipeClient;
|
||||
|
||||
private const string KeyPath = @"Software\Masstransfer\Security";
|
||||
|
||||
public event Action<string> MessageReceived;
|
||||
|
||||
/// <summary>
|
||||
|
@ -25,7 +28,17 @@ internal class PipeClient(string pipeName)
|
|||
{
|
||||
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("正在连接服务器");
|
||||
_pipeClient.Connect(5000);
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ public class ProcessHelper
|
|||
public static void Init()
|
||||
{
|
||||
if (_pipe != null) return;
|
||||
_pipe = new PipeClient("MasstransferPipe");
|
||||
_pipe = new PipeClient();
|
||||
_pipe.Start();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue