// RPC methods // These are similar to those in IGameServerStub but tailored to RPC connections. public async Task<JoinResult> JoinAsync(GameClientInfo clientInfo, [RpcCaller]RpcConnection caller) { // Create a proxy that forwards server-calls to the client via RPC var clientStub = new ServerSideClientProxy(clientInfo, caller); var joinResult = await _gameServer.JoinAsync(clientInfo, clientStub); if (joinResult.IsSuccessful) _players.Add(caller.Id, clientInfo); return joinResult; }
public NetGameClient(GameClientInfo playerInfo) : base(playerInfo) { }
public ServerSideClientProxy(GameClientInfo clientInfo, RpcConnection connection) { PlayerInfo = clientInfo; _connection = connection; }
public LocalGameClient(GameClientInfo playerInfo) : base(playerInfo) { }