기본 콘텐츠로 건너뛰기

라벨이 connection인 게시물 표시

Meteor에서 접속(onConnection)/이탈(onClose) 관리에 대해 알아보자.

Meteor에서 로그인과는 상관없이 어떤 유저가 접속해 있고 이탈했는지를 추적하고 싶어서 정리, 서버사이드에서 아래와 같이 작성했다. Meteor.startup ->   console.log "server initiated"   ConnectedUsers.remove {} Meteor.onConnection (o)->   console.log "session [#{o.id}] is connected"   ConnectedUsers.insert userId: o.id   o.onClose (p)->     ConnectedUsers.remove userId: o.id Meteor.methods   "getSessionId": ->     @connection.id Meteor.publish "list.connectedUsers", ->   ConnectedUsers.find() 결론은 이정도이지 않나 싶다. mongodb를 사용하지 않고도 해보았는데 지나치게 publish쪽과 onConnection쪽이 복잡하고 일반화하기 좋지 않아 일단 보류. https://gist.github.com/makrem025/35543cd60aa88ca49fa0  의 예에서 응용하여 onConnection 일때 publish 의 added, remove로 쏘게 하면 되긴 함. 메모리 디비는 사랑입니다 <3 접속자 관리 관련한 기존 package(aka. mizzao:user-status)들은 지나치게 User collection을 괴롭혀서 성능을 떨어뜨린다. 생선을 낚으라고 준 낚시대인데 잡아야 하는 게 상어라면 분질러 버리고 작살을 만드는 게 맞다. ( 뭐? 상어도 낚시로 잡는다고? 낚알못 ) 우리는 뾰족하게 DDP를 통해 접근한 소켓(사용자가 아니다. 이름도 몰라요 성도 몰라 )에 대해 파악하고 이를 확인하는 것이 전부. 실전...