9. 메시징패턴
메시징 패턴
1. 메시지란 무엇인가
2. 요청 응답
// 요청 응답 패턴
// 중간자
var CrowMailBus = (function () {
function CrowMailBus(requestor) {
this.requestor = requestor;
this.responder = new CrowMailResponder(this);
}
CrowMailBus.prototype.send = function (message) {
var _this = this;
if (message._from == 'requestor') {
this.responder.processMessage(message);
} else {
this.requestor.processMessage(message);
}
// 웹워커와의 통신형태
// if (message._from == 'requestor') {
// process.nextTick(function () {
// return _this.responder.processMessage(message);
// });
// } else {
// process.nextTick(function () {
// return _this.requestor.processMessage(message);
// });
// }
};
return CrowMailBus;
})();
// 요청
var CrowMailRequestor = (function () {
function CrowMailRequestor() {
}
CrowMailRequestor.prototype.request = function () {
var message = {
_messageDate: new Date(),
_from: "requestor",
_corrolationId: "Aaa",
body: "Invade Moat Cailin"
};
// return message;
var bus = new CrowMailBus(this);
bus.send(message);
};
CrowMailRequestor.prototype.processMessage = function (message) {
console.dir(message);
};
return CrowMailRequestor;
})();
// 응답
var CrowMailResponder = (function () {
function CrowMailResponder(bus) {
this.bus = bus;
}
CrowMailResponder.prototype.processMessage = function (message) {
var response = {
_messageDate: new Date(),
_from: "responder",
_corrolationId: message._corrolationId,
body: "Okey, invaded"
};
this.bus.send(response);
};
return CrowMailResponder;
})();
var requestor = new CrowMailRequestor();
var bus = new CrowMailBus(requestor);
var responder = new CrowMailResponder(bus);
requestor.request("request Send");
requestor.request("request Send");3. 발행과 구독
4. 팬아웃과 팬인
Last updated