A simple Pub/Sub module for chrome extension
크롬 익스텐션 개발 시,
익스텐션과 컨텐트 스크립트 간의 메시지 전달을 위한 Pub/Sub 모듈입니다.
크롬에서 이미 메시징 API를 제공하고 있지만,
(http://developer.chrome.com/extensions/messaging.html)
백그라운드와 컨텐트 스크립트에서의 호출 방식이 달라 약간 혼란스럽습니다.
pubsub는 백그라운드와 컨텐트 스크립트의 구분 없이,
간편하게 메시지를 전달할 수 있는 간단한 Pub/Sub 방식의 모듈입니다.
pubsub.js 를 백그라운드와 컨텐트 스크립트 양쪽에 모두 추가합니다.
모듈은 window.pubsub
로 할당하며,
RequireJS를 사용하고 있다면 전역변수 대신 모듈로 define 합니다.
메시지를 발행(publish)합니다.
메시지는 백그라운드와 컨텐트 스크립트 양쪽으로 전달됩니다.
단, 컨텐트 스크립트로는, 탭이 활성화되어 있는 경우에만 전달합니다.
- msg {string} 메시지명
- data {any} 전달할 데이터
pubsub.pub('foo', {
'bar': 'abc'
});
메시지를 구독(subscribe)합니다.
- msg {string} 메시지명
- callback {function(data)} 메시지를 받은 경우 실행할 콜백
pubsub.sub('foo', function (data) {
console.log(data); //--> { 'bar': 'abc' }
});