Skip to content

Commit 44c33c0

Browse files
committed
refactor(StartUp): 重构游戏应用客户端为服务客户端并添加RPC支持
- 将 GameAppClient 重构为 GameAppServiceClient - 移除异步启动逻辑,改为同步初始化 - 添加新的 RPC 调用方法 Call<T> - 修改发送消息方法名为 Send
1 parent f70480a commit 44c33c0

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

GameFrameX.StartUp/AppStartUpByGameAppClient.cs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@
3232
using System.Net;
3333
using GameFrameX.Foundation.Extensions;
3434
using GameFrameX.Foundation.Logger;
35+
using GameFrameX.NetWork.Abstractions;
3536
using GameFrameX.NetWork.Messages;
36-
using GameFrameX.StartUp.DiscoverCenter;
37+
using GameFrameX.StartUp.ServiceClient;
3738
using ErrorEventArgs = GameFrameX.SuperSocket.ClientEngine.ErrorEventArgs;
3839

3940
namespace GameFrameX.StartUp;
@@ -43,15 +44,15 @@ namespace GameFrameX.StartUp;
4344
/// </summary>
4445
public 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

Comments
 (0)