AK056/Assets/GameLogic/Origin/application/InitNetWorkProcess.cs
2025-05-09 15:40:34 +08:00

61 lines
1.7 KiB
C#

using EasyInject.Attributes;
using System.Collections.Generic;
using GameLogic.Origin.data;
using UnityEngine;
/// <summary>
/// 初始化网络流程
/// </summary>
[Component("InitNetWorkProcess")]
public class InitNetWorkProcess : IProcessState
{
[Autowired]
private NetWorkComponent netWorkComponent;
[Autowired("WcsWebSocket")]
private WcsWebSocket wcsWebSocket;
[Autowired("WmsStorageWebsocket")]
private WmsStorageWebsocket wmsStorageWebsocket;
private bool executing = false;
[Autowired] AgvTaskListData _agvTaskListData;
public string Name { get => "InitNetWorkProcess"; }
public int Priority { get => 0; }
public bool IsExecuteProcess { get => executing; set => executing = value; }
public void OnEnter()
{
Debug.Log("正在处理网络流程");
List<IWcsSocketDataHandle> wcsSocketDataHandles = ApplicationBoot.Instance.GetBeans<IWcsSocketDataHandle>();
wcsSocketDataHandles.ForEach(x =>
{
////监听后台数据变化
wcsWebSocket.OnMessage(x.GetChannleKey(), x.DataHandle);
});
List<IStorageSocketDataHandle> storageSocketDataHandles = ApplicationBoot.Instance.GetBeans<IStorageSocketDataHandle>();
storageSocketDataHandles.ForEach(v =>
{
////监听后台数据变化
wmsStorageWebsocket.OnMessage(v.DataHandle);
});
//初始化agv任务列表
_agvTaskListData.Init();
netWorkComponent?.ConnectAllWebSocket();
}
public void OnExit()
{
Debug.Log("网络服务启动完成");
IsExecuteProcess = false;
}
public void OnUpdate()
{
if (netWorkComponent.AllWebSocketConnected())
{
ApplicationStateMachine.Chanage(this);
}
}
}