현재 뒤끝 sdk 5.18.1 을 사용하고 있는데 sdk에 따라 다른 프로세스로 처리되고있을수도 있을까요? 일단 현재 DEV 테스트로 15개 가량의 우편을 전송한후 Backend.UPost.GetPostList 를 호출
이후 var postList = bro.GetReturnValuetoJSON()[“postList”]; 의 postList의 count가 10보다 클경우 재귀를 돌리게끔 처리했을때 postList.Count의 카운트가 지속적으로 10개로 발생을 하고있습니다.
또한 다른 dev 계정으로 우편을 10개 이상을 전송후 Backend.UPost.GetPostList를 호출했을때 우편 10개를 확인후 Backend.UPost.ReceivePostItemAll를 호출후 BackendReturnObject의 returnvalue를 출력했을때 우편 10개보다 첨부 파일처럼 우편 갯수보다 더 많은 아이템이 수령된걸 확인했습니다.
참고가 될수있게 해당 GetPostList 출력함수도 첨부드립니다.
public int count = 3;
/// <summary>
/// 특정 타입 우편 리스트 가져오기 (비동기 버전)
/// </summary>
public async UniTask GetPostListAsync(PostType postType, bool immidiately, CancellationToken cancellationToken = default)
{
UniTask<BackendReturnObject> processAsync()
{
if (immidiately)
{
return UniTask.FromResult<BackendReturnObject>(Backend.UPost.GetPostList(postType, mailPostRequestCount));
}
else
{
var tcs = new UniTaskCompletionSource<BackendReturnObject>();
SendQueue.Enqueue(Backend.UPost.GetPostList, postType, mailPostRequestCount, (bro) => tcs.TrySetResult(bro));
return tcs.Task;
}
}
var bro = await processAsync().AttachExternalCancellation(cancellationToken);
if (false == BackendErrorHandler.ErrorCheck(bro))
{
return;
}
var userMail = UserGameData.GetUserData<UserMail>();
var postList = bro.GetReturnValuetoJSON()["postList"];
foreach (JsonData jsonData in postList)
{
try
{
var (title, content, inDate, expire) = ParsePostData(jsonData, postType);
var attached = parsingItemsFromJsonData(jsonData);
userMail.AddNetMail(postType, title, content, inDate, expire, attached);
}
catch (Exception ex)
{
Debugger.Error($"Failed to parse post data: {ex.Message}");
continue; // 하나 실패해도 다른 우편들은 계속 처리
}
}
if (mailPostRequestCount <= postList.Count)
{
count--;
if (count <= 0)
{
count = 3;
return;
}
await GetPostListAsync(postType, immidiately, cancellationToken);
}
}
우편보상.txt (4.8 KB)