apache thrift javascript

nodejs thrift를 선언 해준 후

notification을 시리얼라이즈, 바이트 배열은 transport.outBuffers에서 찾을 수 있음 var byteArray = transport.outBuffers;

Game Meta Data

게임 메타 데이터

  • 게임 개발용 데이터
  • 시스템 개발에 근간이 됨.
  • 정적 데이터
  • 퀘스트, 스킬, 아이템의 기본 기능 및 설정등 변하지 않는 값으로 구성함.

메타 데이터 포멧

  • 규정된 포멧은 없음
  • 전통적으로 csv를 많이 사용함.
  • xml, yml, json의 형태로 사용함.

메타 스키마

  • 데이터 구성 정의
  • excel, xml, json의 형태로 설계함.

게임 메타 툴의 필요성

  • 시스템 개발과 유지 보수시 메타데이터 처리하는데 시간이 들고 유연성이 떨어짐.
  • 데이터 입력자 입장의 와 시스템 개발자 입장의 구조를 포함 할 수 있는 프레임워크가 필요함.

메타 시스템 개발에 추천 시스템

  • Apache Thrfit : Protobuf와는 다르게 스키마 구조를 만들어낼 수 있음.
    • 여러언어를 지원해주며 javascript연동시 메타 시스템 개발을 효율적으로 할 수 있음.
  • node.js : javascript기반 개발로 개발시간을 단축
  • webix : web ui library로 데이터처리에 유용하게 사용할 수 있는 ui 컴포넌트들이 많이 있음. 현재 나와있는 여러가지 라이브러리에 비해 완성도가 높다.

thrift c# file I/O

  • 파일 입출력으로는 streamTStreamTransport를 이용하면 된다.

handling JSON with Apache Thrift

c++로 JSON과 연동하는 템플리트 코드이다.

참고: http://trevorgattis.blogspot.kr/2011/12/apache-thrift-converting-from-simple.html

한마디

소중한 정보를 공유해주는 인터넷 사람들 !! 감사해요.

initialize apache thrift user defined structure

structure일 경우 default 값으로 초기화는 어떻게 할까?
json형식으로 초기값을 지정할 수 있다.

header.thrift를 incldue해서 사용하고 기본 값을 지정한다고 하자.

json형식으로 사용할 때 숫자, 문자열 구분을 하므로 맞게 넣어주면 된다.

소감

thrift 정말 쓸만한듯.

apache thrift IDL include

thrift의 매력적인 기능 중 하나는 include이다. define을 중복하지 않고 공유할 수 있도록 만들어준 센스

include하고 cpp코드를 생성하는데 계속 못찾겠다는 오류발생… 영문도 모르고 실망하고 있었는데 자세히 을 읽어보니 이미 답이 있었다.

namespace를 누락했던 것. namesapce의 변수를 사용할 경우 반드시 붙여주도록 하자.

소감

문서 읽을 때 꼼꼼히 읽어보자 !!

apache thrift with c#

apache thrift c# 예제 구하기 정말 힘들다. byte[]로 받고 json모양으로 화면 출력도 해보고 괜춘함.

thrift 정의

thrift compile

버퍼에 저장하고 복원

byte[]로 저장할 수 있다는 것은 그것을 파일로 보내 것 나만의 네트워크 엔진을 쓰건 원하는 대로 수정할 수 있다는 뜻. TJSONProtocol대신 TBinaryProtocol을 성능 차원에서 추천한다. json한번 보고 싶었음.

소감

c#에서도 맘껏 쓸 수 있다니 좋네.

using apache thrift like google protobuf

버퍼를 이용한 시리얼화

protobuf 처럼 serialize에 집중해서 apache thrift를 사용해보고 싶지만, 좋은 예제를 찾기가 어렵다.
테스트한 버젼: thrift-0.9.2

인터넷 자료의 경우 비교적 오래된 자료가 검색이 되어 변경되거나 개선된 점이 부각이 안되는 듯하다.
사용할 때는 라이브러리 버젼을 표시하는 것이 좋겠다.

thrift 메시지(구조체)와 상수 정의
- enum 숫자 자동으로 붙여주는 것은 좋은 기능인 듯.
- 전반적인 정의 언어는 thrift가 더 좋게 느껴진다.

thrift 정의

C++ 코드생성

thrift.exe -I src -r --gen cpp -out src guild.thrift
src디렉토리 안에 guild.thrift파일이 있다고 가정한다.

  • 생성하는 파일은 파일이름_constants.[h,cpp]파일이름_types.[h,cpp]이다.
  • include시에는 파일이름_constants.h만 하면 됨.

thrift를 메모리 버퍼에 할당/복원

  • 중간에 transport의 개념을 넣어 소켓/파일등 I/O를 담당하도록 할 수 있다.
  • 소스 pragmamsvc전용임.

  • 경고가 protobuf 보다는 적게 발생
  • msvc기반으로 빌드, gtest로 테스트
  • protobuf의 장점이 있고 thrift의 장점이 있다.
  • thrift site의 예제로 나와 있는 것은 소켓통신만 나와 있어서 전체적인 구조 파악이 어렵다.
  • 사용 샘플이 적은 것은 thrift 도입에 어려움 중 하나 일듯.