| | |
| | | using System.Net.Sockets; |
| | | using Microsoft.Extensions.Logging; |
| | | using System.Net.Sockets; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Core.Caches; |
| | | using WIDESEAWCS_Tasks.Workflow.Abstractions; |
| | |
| | | private readonly ICacheService _cache; |
| | | private readonly IRobotSimpleCommandHandler _simpleCommandHandler; |
| | | private readonly IRobotPrefixCommandHandler _prefixCommandHandler; |
| | | private readonly ILogger<RobotJob> _logger; |
| | | |
| | | public RobotMessageHandler( |
| | | ISocketClientGateway socketClientGateway, |
| | | RobotStateManager stateManager, |
| | | ICacheService cache, |
| | | IRobotSimpleCommandHandler simpleCommandHandler, |
| | | IRobotPrefixCommandHandler prefixCommandHandler) |
| | | IRobotPrefixCommandHandler prefixCommandHandler, |
| | | ILogger<RobotJob> logger) |
| | | { |
| | | _socketClientGateway = socketClientGateway; |
| | | _stateManager = stateManager; |
| | | _cache = cache; |
| | | _simpleCommandHandler = simpleCommandHandler; |
| | | _prefixCommandHandler = prefixCommandHandler; |
| | | _logger = logger; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public async Task<string?> HandleMessageReceivedAsync(string message, bool isJson, TcpClient client, RobotSocketState state) |
| | | { |
| | | _logger.LogInformation($"接收到客户端【{state.RobotCrane.DeviceName}】发送消息【{message}】"); |
| | | var cacheKey = $"{RedisPrefix.Code}:{RedisName.SocketDevices}:{client.Client.RemoteEndPoint}"; |
| | | if (!_cache.TryGetValue(cacheKey, out RobotSocketState? cachedState) || cachedState == null) |
| | | { |