채팅 문의

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.7.0
  • 프로젝트명 : 다크니스 : 이모탈

채팅 입장 인원수가 제대로 표기되지 않고,
채팅도 인게임 채팅에서는 내용이 보였는데 콘솔에서는 안 보이는 등
자잘한 문제가 있는데요.

제가 코드를 살펴보고 있지만, 혹시 어떤 부분에서 문제가 되는지
서버 측에서 확인 가능한 내용이 있을지 문의드려봅니다.

안녕하세요 개발자님.

클라이언트에서 발생한 유저 접속 수 혹은 채팅 내욕은 실시간으로 갱신이 되지 않으며 5~10분주기로 갱신이 되는 점 참고해주시기 바라며, 갱신 주기가 이루어지지 않고 확인을 하였는지 다시 한번 확인해주시면 감사하겠습니다.

안녕하세요. 채팅을 입력 후 바로 게임을 종료해 다시 입장하게 되면, 아래 함수(뒤끝 서버 최근 채팅 내역 불러오기)로 최근 채팅 내역을 불러오고 있는데요. 여기서 문제점이 발생합니다. 내가 방금 입력후 다시 접속했는데 내가 입력한 채팅이 보이지 않는다는 점입니다.

또한, 이후의 채팅 부터는 갱신 중이라 보이지 않는 채팅 바로 밑에 또 로그가 남는 형식이다 보니 다시 재접속을 했을 때, 채팅이 뒤죽박죽 섞이게 되는데요. 해당 문제 해결할 수 있는 방법은 없을까요?

`Backend.Chat.GetGroupChannelList(“다크니스”, callback =>
{
if (callback.IsSuccess())
{
//채팅 채널 uuid 받아오기
string channelIndate = callback.GetReturnValuetoJSON()[“rows”][0][“inDate”].ToString();

            //uuid를 이용하여 해당 일반 채널의 최근 채팅 내역 가져오기(10개만)
            Backend.Chat.GetRecentChat(ChannelType.Public, channelIndate, 10, callback2 =>
            {
                if (callback2.IsSuccess())
                {
                    for (int i = 0; i < callback2.Rows().Count; i++)
                    {
                        string nickname = callback2.Rows()[i]["nickname"].ToString();
                        string message = callback2.Rows()[i]["message"].ToString();
                        chatItem = new ChatItem(nickname, message);
                        chatScroll.PopulateRecentChat(ChannelType.Public, chatItem);
                    }
                }
            });
        }
    });

`

안녕하세요 개발자님,
GetRecentChat 함수의 경우 최근 채팅 내역 불러오기 이벤트와는 별개의 함수로,
원하는 시점에 호출할 수 있도록 제공되는 비동기 함수입니다.

개발자 문서를 통해 안내되고 있는 내용과 같이 해당 함수를 통해서는
최근 1~2분 사이의 보낸 메시지들은 불러오지 못할 수 있습니다.

OnRecentChatLogs 최근 채팅내역 불러오기 이벤트의 이용을 권장드리며,
OnRecentChatLogs를 통해서는 채팅이 뒤섞이지 않고 최근 내역에 대해 차례대로 불러와 출력되는 점 참고하여 주시면 감사하겠습니다.

알려주신 함수로 변경하니 for문이 중간에 반복되다 멈추게 됩니다. (29개 정도의 로그가 있으면, 18~19 정도 불러오다 중간에 멈추게 되네요. 그래서 채팅이 최근 내역을 불러오기 전에 짤립니다.) 그런데 이상하게도 GetRecentChat 함수를 사용하면 for문이 멈추지 않고 정상 작동 합니다…

     Backend.Chat.OnRecentChatLogs = (RecentChatLogsEventArgs args) => {

            int x = args.LogInfos.Count - 1;

            for (int i = x; i >= 0; i--)
            {
                string nickname = args.LogInfos[i].NickName;
                string message = args.LogInfos[i].Message;
                chatItem = new ChatItem(nickname, message);
                chatScroll.PopulateRecentChat(ChannelType.Public, chatItem);
            }
        };

10개만 불러와서 그렇군요. 해결되었습니다.