Ask Your Question
0

메신저와 같은 기능을 구현하려면..?!

asked 2016-12-21 16:27:31 +0900

Thunder gravatar image

안녕하세요.

제목에 적혀있는 것 처럼 아이펀 엔진을 활용하여 메신저와 비슷한 기능을 구현하려면 어떤식으로 엔진이 활용 가능한가? 궁금합니다. 채팅이 아닌 게임 내부에서 어떤 길드와 친구목록 같은 것을 구분하고 선물을 보낸다거나 현재 접속중인 친구,길드원 목록을 확인한다거나 기타 등등 길드나 친구 같은 특정 그룹들과의 소통적인 부분이 일반 웹방식 비동기 서버 구현과 다른 점이 있는지 궁금합니다.

edit retag flag offensive close merge delete

2 answers

Sort by » oldest newest most voted
0

answered 2016-12-22 17:08:09 +0900

Seunghyun gravatar image

updated 2016-12-22 17:09:29 +0900

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

질문하신 내용을 아래와 같이 나누어 답변 드릴 수 있을 것 같습니다.

  1. 소규모 그룹 만들기

    아이펀엔진은 페이스북 등 일부 플랫폼의 인증 및 친구 목록을 얻어오는 기능을 제공하고 있습니다.(플랫폼은 계속 추가할 예정이며, 상황에 따라 우선순위를 높여 앞당길 수 도 있습니다.)

    길드 또는 게임 친구의 경우 https://www.ifunfactory.com/engine/do... 에 설명된 배열 또는 맵 형태로 길드 시스템을 쉽게 구현하실 수 있습니다.

  2. 그룹 멤버들과 소통하기

    위 1 의 설명으로 그룹의 멤버들을 관리 할 수 있으며(더 구체적으로는 그룹 내 특정 유저의 ID 를 얻을 수 있으며) 아래와 같이 멤버들 간 소통할 수 있습니다.

    2.1 목록

    1 의 설명과 같이 친구 목록을 얻어오는 API 를 제공하며 길드와 같은 경우 길드원 목록 쉽게 구현할 수 있는 기능을 제공하고 있습니다.

    2.2 접속 중인 친구

    특정 ID 의 유저가 접속 중인지, 접속 했다면 어느 서버에 접속했는지 알아내는 API 를 제공하고 있습니다. https://www.ifunfactory.com/engine/do...

    2.2 선물 보내기

    https://www.ifunfactory.com/engine/do... 에 설명된 기능을 이용하면 선물함 등을 구현하고, 선물함 등에 아이템 등을 넣어주는 것을 쉽게 구현할 수 있습니다.

    2.3 메시지 보내기

    https://www.ifunfactory.com/engine/do... 에 설명된 기능을 이용하면 접속된(같은 서버가 아니더라도) 특정 유저 클라이언트에 임의의 패킷을 보낼 수 있습니다.

웹방식 비동기 서버 구현 대비 아래와 같은 장점이 있습니다.

  1. DB 처리를 자동으로 해주기 때문에 DB 관련 작업을 하실 필요가 없습니다. (샤딩 구현이나, 테이블 등의 스키마 생성이나 SELECT, INSERT, UPDATE 등의 쿼리를 짜실 필요가 없습니다.)
  2. 친구, 길드 등의 멤버가 접속 여부와 접속된 서버와 상관 없이 쉽게 해당 유저의 데이터를 안전하게 접근(읽기/쓰기) 할 수 있습니다.
  3. 친구, 길드 등의 멤버가 접속 여부와 접속된 서버와 상관 없이 쉽게 해당 유저에게 메시지를 보낼 수 있습니다.
  4. 친구, 길드 내 랭킹을 쉽게 구현할 수 있습니다.

감사합니다.

edit flag offensive delete link more
0

answered 2016-12-23 10:23:38 +0900

Thunder gravatar image

빠른 답변 감사합니다. 그런데 혹시 추가로 질문에 올렸던 기능들을 구현하기 위해서는 클라이언트와 서버가 동기식으로 커넥션을 계속 유지한 상태여야 하는건가요?

edit flag offensive delete link more

Comments

"2.3 메시지 보내기" 는 상대방이 수신하기 위해 항상 TCP 연결을 유지해야만 가능할 것 같습니다. (일시적인 연결 끊김은 상관 없습니다.) 나머지는 반드시 연결을 유지할 필요는 없을 것 같습니다.

참고로 말씀드리면 아이펀엔진의 클라이언트 플러그인을 이용하시면 TCP, HTTP, UDP 를 동일한 인터페이스로 다루실 수 있습니다. 그리고 TCP 의 일시적인 연결 끊김은 엔진과 플러그인에서 알아서 처리해줍니다.(끊긴 상태에서 오간 메시지를 알아서 재 연결 후 순서대로 전달해줍니다.)

감사합니다.

Seunghyun gravatar imageSeunghyun ( 2016-12-23 10:45:53 +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-21 16:27:31 +0900

Seen: 159 times

Last updated: Dec 23 '16