Ask Your Question
0

메세지 전송시 스키마로 메시지 자동검증부분에 대한 문의 드립니다. (2016-03-03, fatmoon)

asked 2016-11-30 16:31:24 +0900

inkeun.kim gravatar image

안녕하세요 스마트 조이의 이정수 입니다. 빠른답변 감사드립니다.^^; 현재 디렉토리안에 파일을 생성하여 하여 사용중에 있습니다. 메세지 검증 프로토콜에 대한 재사용에 대해 궁금한 점이 있어 다시 문의 드립니다. 기존 아이템정보를 요청하는 프로토콜에 대해 req_iteminfo메세지 안에서 item정보에 대한 메세지 검증 json schema를 만들어 사용하였습니다. 그후 유저 정보를 요청하는 req_userinfo의 json schema에서 item 정보가 다시 필요하다고 한다면 다시 item에 대한 schema를 정의 해야하는데요 이부분을 매번 정의하지 않고 재사용을 할수 있는 지요. 있다고 한다면 어떤 방식으로 해야하는지 알고 싶습니다.

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted
0

answered 2016-11-30 16:33:23 +0900

inkeun.kim gravatar image

updated 2016-11-30 16:49:14 +0900

Answer by seunghyun · Mar-03 AM 03:58

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

코드로 직접 하실 때는 아래처럼 가능합니다.

다음은 같이 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);

감사합니다. 0 · Share

edit flag offensive delete link more

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:31:24 +0900

Seen: 36 times

Last updated: Nov 30 '16