3232using System . Net ;
3333using GameFrameX . Foundation . Extensions ;
3434using GameFrameX . Foundation . Logger ;
35+ using GameFrameX . NetWork . Abstractions ;
3536using GameFrameX . NetWork . Messages ;
36- using GameFrameX . StartUp . DiscoverCenter ;
37+ using GameFrameX . StartUp . ServiceClient ;
3738using ErrorEventArgs = GameFrameX . SuperSocket . ClientEngine . ErrorEventArgs ;
3839
3940namespace GameFrameX . StartUp ;
@@ -43,15 +44,15 @@ namespace GameFrameX.StartUp;
4344/// </summary>
4445public abstract partial class AppStartUpBase
4546{
46- private GameAppClient _gameAppClient ;
47+ private GameAppServiceClient _gameAppClient ;
4748
4849 /// <summary>
4950 /// 启动与发现中心(DiscoveryCenter)通信的客户端,用于注册当前服务器实例并接收发现中心推送的消息
5051 /// </summary>
51- private async void StartGameAppClient ( )
52+ private void StartGameAppClient ( )
5253 {
5354 // 创建客户端事件回调对象
54- var gameAppClientEvent = new GameAppClientEvent
55+ var gameAppServiceConfiguration = new GameAppServiceConfiguration
5556 {
5657 OnConnected = GameAppClientOnConnected ,
5758 OnClosed = GameAppClientOnClosed ,
@@ -75,10 +76,7 @@ private async void StartGameAppClient()
7576 var endPoint = new DnsEndPoint ( Setting . DiscoveryCenterHost , Setting . DiscoveryCenterPort ) ;
7677
7778 // 根据配置创建发现中心终结点并初始化客户端
78- _gameAppClient = new GameAppClient ( gameAppClientEvent , endPoint , Setting ) ;
79-
80- // 异步启动客户端,开始与发现中心建立连接
81- await _gameAppClient . EntryAsync ( ) ;
79+ _gameAppClient = new GameAppServiceClient ( endPoint , gameAppServiceConfiguration ) ;
8280 }
8381
8482 /// <summary>
@@ -90,14 +88,26 @@ protected virtual MessageObject GameAppClientOnHeartBeat()
9088 return default ;
9189 }
9290
91+ /// <summary>
92+ /// 调用发现中心(DiscoveryCenter)的RPC方法
93+ /// </summary>
94+ /// <typeparam name="T">要返回的响应消息类型</typeparam>
95+ /// <param name="messageObject">要调用的RPC方法参数</param>
96+ /// <param name="timeOut">调用超时时间(毫秒)</param>
97+ /// <returns>表示异步操作的任务,任务结果为IRpcResult对象</returns>
98+ public Task < IRpcResult > Call < T > ( MessageObject messageObject , int timeOut = 10000 ) where T : IResponseMessage , new ( )
99+ {
100+ return _gameAppClient . Call < T > ( messageObject , timeOut ) ;
101+ }
102+
93103 /// <summary>
94104 /// 向发现中心(DiscoveryCenter)发送消息
95105 /// </summary>
96106 /// <param name="message">待发送的消息对象</param>
97107 public void Send ( MessageObject message )
98108 {
99109 // 如果客户端已初始化,则调用其方法将消息发送至发现中心服务器
100- _gameAppClient ? . SendToServer ( message ) ;
110+ _gameAppClient ? . Send ( message ) ;
101111 }
102112
103113 /// <summary>
0 commit comments