/// <summary> /// 初始化 /// </summary> /// <param name="businessPort">KAE Agent启动时需要注册的业务通信端口</param> /// <param name="systemPort">KAE Agent启动时需要注册的系统管理通信端口</param> /// <param name="localIP">当前本机IP</param> public static void Initialize(ushort businessPort, ushort systemPort, string localIP = null) { _tracing.DebugInfo("#Initializing KAE internal system resource factory..."); KAESystemInternalResource.Factory = new DefaultInternalResourceFactory(); KAESystemInternalResource.Factory.Initialize(); _tracing.DebugInfo("\t#Initializing network resources..."); if (!KAEHostNetworkResourceManager.IsInitialized) { KAEHostNetworkResourceManager.MetadataNewTransaction += MetadataNewTransaction; KAEHostNetworkResourceManager.Initialize(businessPort, systemPort); } }
/// <summary> /// 初始化资源 /// </summary> /// <param name="businessPort">KAE Agent启动时需要注册的业务通信端口</param> /// <param name="systemPort">KAE Agent启动时需要注册的系统管理通信端口</param> /// <param name="localIP">当前本机IP</param> public static void Initialize(ushort businessPort, ushort systemPort, string localIP = null) { if (IsInitialized) { return; } IsInitialized = true; if (string.IsNullOrEmpty(localIP)) { localIP = NetworkHelper.GetCurrentMachineIP(); } /*Openning TCP port for business requests.*/ TcpUri uri = new TcpUri(string.Format("tcp://{0}:{1}", localIP, businessPort)); IHostTransportChannel hostChannel = new TcpHostTransportChannel(businessPort); hostChannel.ChannelCreated += ChannelCreated; if (!hostChannel.Regist()) { hostChannel.ChannelCreated -= ChannelCreated; throw new AllocResourceFailedException("#Sadly, We couldn't alloc current network resource. #Uri: " + uri); } hostChannel.Tag = new KAENetworkResource { NetworkUri = uri, Protocol = ProtocolTypes.Metadata }; _resources.Add(ProtocolTypes.Metadata, new Tuple <IHostTransportChannel, Uri>(hostChannel, uri)); _tracing.DebugInfo("\t\t#Initialized network resource.\t(P: {0},\tURL: {1})", ConsoleColor.Gray, ProtocolTypes.Metadata, uri); /*Openning TCP port for system management*/ uri = new TcpUri(string.Format("tcp://{0}:{1}", localIP, systemPort)); hostChannel = new TcpHostTransportChannel(systemPort); hostChannel.ChannelCreated += ChannelCreated; if (!hostChannel.Regist()) { hostChannel.ChannelCreated -= ChannelCreated; throw new AllocResourceFailedException("#Sadly, We couldn't alloc current network resource. #Uri: " + uri); } hostChannel.Tag = new KAENetworkResource { NetworkUri = uri, Protocol = ProtocolTypes.INTERNAL_SPECIAL_RESOURCE }; _resources.Add(ProtocolTypes.INTERNAL_SPECIAL_RESOURCE, new Tuple <IHostTransportChannel, Uri>(hostChannel, uri)); _tracing.DebugInfo("\t\t#Initialized network resource.\t(P: {0},\tURL: {1})", ConsoleColor.Gray, ProtocolTypes.INTERNAL_SPECIAL_RESOURCE, uri); }