Ask Your Question
0

채팅기능을 구현하고있습니다.

asked 2016-12-28 16:47:20 +0900

Thunder gravatar image

안녕하세요. 레퍼런스 읽어보며 이런 저런 기능을 구현하는 중에 있습니다. 현재 멀티캐스팅과 채팅에 관련된 부분을 따라 진행 해보고있는데 서버에서는 MANIFEST 설정만 추가 및 수정 해주더라 구요. 테스트를 해보니 딱히 채널을 나간적이 없는데 채널에서 나가지는 경우가 있더라구요. user_ID left the 'test_channel' channel 라는 메세지가 전달되구요. 이런 경우는 네트워크적인 문제인지요? 해결하기위해선 나가진경우에 바로 재연결 하는 구간을 만들어서 해결 해야하나요? 그리고 현재 채널에 몇명의 유저가 접속해있는지 같은 부분을 확인 하려면 클라이언트에서 joindCallback 과 leftCallback 콜백함수 호출 될때마다 카운팅해서 계산하는 방법 뿐이 없나요? 그리고 세션을 MANIFEST 에서 Timeout 설정값을 통해 유지 시간을 결정 한다면 TCP,UDP,HTTP 연결 timeout 설정은 따로 설정 못하나요? 마지막으로 세션ID가 각 디바이스의 고유값으로 구분 하는게 맞나요? 감사합니다.

edit retag flag offensive close merge delete

3 answers

Sort by » oldest newest most voted
0

answered 2017-01-03 15:19:25 +0900

Thunder gravatar image

답변 감사합니다. 새해 복 많이 받으세요. 덕분에 잘못 이해한 부분과 궁금했던 부분이 많이 해결 되었습니다. 혹시 추가로 유저들의 채팅들을 로그로 남기는 기능도 있는지요?

edit flag offensive delete link more

Comments

안녕하세요. 아이펀팩토리입니다.

플러그인에서 제공하는 채팅을 이용한다면 해당 기능을 추가할 수 있을 것 같습니다. 하지만 채팅 외의 예제의 PbufHelloMessage 와 같이 메시지를 확장하거나 Json 에 임의의 필드를 추가하여 채팅 메시지를 전송하는 경우에는 아이펀 엔진에서는 알 수 없는 내용이여서 자동으로 남기는 것은 어렵지만, 메시지를 파싱할 수 있게끔 Hook 형태의 API 는 추가할 수 있을 것 같습니다.

Thunder 님도 새해 복 많이 받으세요^^

감사합니다.

Minwoo Seok gravatar imageMinwoo Seok ( 2017-01-04 14:43:02 +0900 )edit
0

answered 2017-01-02 15:21:25 +0900

Eunhee Lee gravatar image

안녕하세요. 클라이언트 관련 질문에 대한 답변입니다.

채널을 나가지 않았는데도 채널에서 튕기는 것은 세션 타임아웃으로 인한 것일 수도 있습니다. 서버의 MANIFEST 파일에서 타임아웃 시간을 확인한 후 이로 인한 퇴장인지 확인해보시기 바랍니다.

각각의 프로토콜에 대한 타임아웃은 따로 설정할 수 없으며 세션 타임아웃으로만 설정 가능합니다.

세션 ID는 디바이스 고유값이 아니라 세션에 대한 고유의 ID이며 하나의 클라이언트에서 여러 개의 세션 ID를 만들 수도 있습니다. 클라이언트에서는 FunapiSession 클래스 하나가 하나의 세션이라고 이해하면 될 것 같습니다.

채널의 유저 정보는 RequestChannelList() 함수를 호출해서 확인할 수 있는데 요청하기 전에 ChannelListCallback이 등록되어 있어야 합니다. 해당 메시지에 대한 샘플은 Tester.cs 파일의 onMulticastChannelList 함수에서 확인하실 수 있습니다.

감사합니다.

edit flag offensive delete link more
0

answered 2016-12-28 16:58:34 +0900

Thunder gravatar image

추가로 하나 더 여쭤보고싶습니다. 아이펀엔진을 활용해서 채팅서버 같은 기능이 구현된 서버를 게임 론칭시에 AWS나 KT ucloud biz 같은 클라우드 서버로 올리게 된다면 기존 웹서버 방식으로 올렸을 시 서버 확장시 로드밸런싱을 통해 횡적 확장을 구성했다면 채팅서버 같은 경우는 스케일업으로 서버 스팩을 올리는 수 밖에 없나요? 어떤식으로 클러스터링을 할 수 있는지 궁금합니다 .. ㅠㅠ 질문이 많습니다. 추운데 감기 조심하세요.

edit flag offensive delete link more

Comments

안녕하세요, 아이펀팩토리입니다.

본 질문부터 먼저 답변드리겠습니다.

멀티캐스팅은 아이펀 엔진의 분산처리 기능을 이용하여 구현되어 있습니다. 따라서 분산처리 기능이 설정되어 있다면 말씀하신 내용과 같이 횡적 확장하시더라도 내부적으로 추가된 채팅 서버를 인식하고 처리하게 됩니다.

Thunder 님도 감기 조심하세요^^

감사합니다.

Minwoo Seok gravatar imageMinwoo Seok ( 2017-01-02 13:29:11 +0900 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-12-28 16:47:20 +0900

Seen: 270 times

Last updated: Jan 03 '17