Ask Your Question
0

안녕하세요 평가판 사용중에 궁금한 사항이 있어 문의 드립니다. (2016-03-02, fatmoon)

asked 2016-11-30 16:28:34 +0900

inkeun.kim gravatar image
  1. Message 처리부분 콜백함수에 로그를 남겼는데 로그가 여러번 찍힙니다. 같은 Message를 여러번 보내는건지 궁금합니다. (테스트 결과 처리는 한번 되는 듯 싶은데 로그가 여러번 남아 문의 드립니다.)

    1. Object Model에서 Key를 설정하는데 여러개를 멀티로 설정은 가능한듯 싶은데, 복합키로는 설정이 불가능한지 궁금합니다.

    2. Json 메시지 검증시 메시지 마다 schema를 생성해야하는지 기존 정의된 schema를 재사용가능한지 궁금합니다.

edit retag flag offensive close merge delete

2 answers

Sort by » oldest newest most voted
0

answered 2016-11-30 16:28:53 +0900

inkeun.kim gravatar image

Answer by seunghyun · Mar-02 AM 09:10

안녕하세요.

  1. Message 처리부분 콜백함수에 로그를 남겼는데 로그가 여러번 찍힙니다. 같은 Message를 여러번 보내는건지 궁금합니다. (테스트 결과 처리는 한번 되는 듯 싶은데 로그가 여러번 남아 문의 드립니다.)

=> 롤백이 발생되어 재실행되어 로그가 중복으로 찍힌 것으로 보입니다. Create/Fetch/Refresh 등의 함수는 롤백이 발생될 수 있으며 롤백이 발생되면 해당 지점에서 함수 처리가 멈추고 재실행됩니다. 만약, 위 함수들 보다 먼저 로그를 찍는 다면 롤백 횟수만큼 그 로그를 찍는 코드가 실행되어 중복으로 로그가 남게 됩니다.

자세한 내용은 http://www.ifunfactory.com/engine/doc... 를 참고 부탁드리며, http://www.ifunfactory.com/engine/doc... 예제를 참고하시면 이해에 도움이 되실 듯 합니다.

  1. Object Model에서 Key를 설정하는데 여러개를 멀티로 설정은 가능한듯 싶은데, 복합키로는 설정이 불가능한지 궁금합니다.

복합키는 지원하지 않습니다. 복합키를 반드시 사용해야 하는 경우를 알려주시면, 우회하여 구현하는 방법이 있는지 도움을 드리도록 하겠습니다.

  1. Json 메시지 검증시 메시지 마다 schema를 생성해야하는지 기존 정의된 schema를 재사용가능한지 궁금합니다.

네 재사용하셔도 됩니다.

코드가 아닌 외부 JSON 파일로 프로토콜을 정의할 수 도 있습니다. http://www.ifunfactory.com/engine/doc... 참고 부탁드립니다.

감사합니다.

edit flag offensive delete link more
0

answered 2016-11-30 16:29:37 +0900

inkeun.kim gravatar image

updated 2016-11-30 16:50:46 +0900

(reply 가 600 글자를 넘길 수 없이 여기에 작성합니다)

다음과 같이 Message 에 item 이 포함되어야 할 때 예제입니다.

{
  "item": {
    "code": 100,
    "count": 3,
    "level": 20
  }
}

위 예의 경우 JsonSchema 는 아래와 같습니다

JsonSchema scm_item(JsonSchema::kObject,
  JsonSchema("item", JsonSchema::kObject, true,
    JsonSchema("code", JsonSchema::kInteger, true),
    JsonSchema("count", JsonSchema::kInteger, true,
    JsonSchema("level", JsonSchema::kInteger, true)));

req_iteminfo 와 req_userinfo 핸들러를 등록할 때/* req_userinfo message 아래처럼 재활용 할 수 있습니다

RegisterHandler("req_iteminfo", OnItemInfo, scm_item);
RegisterHandler("req_userinfo", OnUserInfo, scm_item);

아래와 같은 형태도 가능합니다.

{
  "user_id": "abcd",
  "item": {
    "code": 100,
    "count": 3,
    "level": 20
  }
}

위처럼 req_userinfo 의 경우 user id 를 추가적으로 받는다면 아래처럼 응용할 수 있습니다.

JsonSchema scm_user(JsonSchema::kObject,
  scm_item,
  JsonSchema("user_id", JsonSchema::kString, true));

RegisterHandler("req_userinfo", OnUserInfo, scm_user);

외부 JSON 파일의 경우는 개별적으로 정의하셔야 합니다.

감사합니다. 1 · Hide 1 · Share

edit flag offensive delete link more

Comments

avatar imagefatmoon · Mar-03 AM 03:58 0

빠른 답변 감사합니다. ^^ 현재 외부 JSON파일을 사용중이었는데 개별적으로 정의해야하거나 코드로 검증하는 방법을 택해야 겠네요. 덕분에 궁금한 부분이 해결되었습니다.

inkeun.kim gravatar imageinkeun.kim ( 2016-11-30 16:29:47 +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-11-30 16:28:34 +0900

Seen: 29 times

Last updated: Nov 30 '16