2017년 6월 15일 목요일

Meteor DDP 완전분석 - All about DDP

한번은 정리해야지 하는 생각으로 Websocket 모니터를 열고 DDP를 하나하나 각개 격파해보려고 한다.
클라이언트에서 요청별로 서버 응답 내용을 정리해보았다.


  • 로그인 없을 때
  1. 접속

    14:07:20.485   {'msg':'connect','version':'1','support':['1','pre2','pre1']}
    14:07:20.486 a {'server_id':'0'}
    14:07:20.634 a {'msg':'connected','session':'wqr3vuoJSYXvHLKyR'}

    정해진 JSON을 단순하게 전송하고 { msg: connected } 를 받는다. 단순!
  2. meteor_autoupdate_clientVersions 요청
    14:07:20.486   {'msg':'sub','id':'nhyS7NmraDAk8Y5Nc','name':'meteor_autoupdate_clientVersions','params':[]}
    14:07:20.636 a {'msg':'added','collection':'meteor_autoupdate_clientVersions','id':'HgGFXuNFEw4TeHb7S','fields':{'current':true}}
    14:07:20.639 a {'msg':'added','collection':'meteor_autoupdate_clientVersions','id':'version','fields':{'version':'3953cc195bf2ea8538cc04c228043b0222c64faa'}}
    14:07:20.639 a {'msg':'added','collection':'meteor_autoupdate_clientVersions','id':'version-cordova','fields':{'version':'none','refreshable':false}}
    14:07:20.640 a {'msg':'added','collection':'meteor_autoupdate_clientVersions','id':'version-refreshable','fields':{'version':'4d68205e4c57f75e9a5ca7e7fd446277ef11e2e4','assets':{'allCss':[{'url':'/merged-stylesheets.css?hash=20ae2c8d51b2507244e598844414ecdec2615ce3'}]}}}
    14:07:20.641 a {'msg':'ready','subs':['nhyS7NmraDAk8Y5Nc']}
    최초의 subscribe이다. meteor_autoupdate_clientVersion 이라는 미리 정의한 collection에 버전 정도 등등을 내려준다.
    subscribe시 요청한 ID 를 {'msg': 'ready' } 시 subs 와 맞춰보는 것으로 한 쌍을 이룬다.
  3. 로그인
  4. 로그인 서비스 설정