일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- akka 강좌
- Actor
- 스칼라 동시성
- 스칼라
- 주키퍼
- Play2 로 웹 개발
- 파이썬 강좌
- 블록체인
- Akka
- 파이썬 머신러닝
- Golang
- play 강좌
- 하이퍼레저 패브릭
- CORDA
- hyperledger fabric
- 파이썬 동시성
- 파이썬
- 파이썬 데이터분석
- 하이브리드앱
- 플레이프레임워크
- 이더리움
- play2 강좌
- 스칼라 강좌
- 스위프트
- Adapter 패턴
- Play2
- Hyperledger fabric gossip protocol
- 엔터프라이즈 블록체인
- 안드로이드 웹뷰
- 그라파나
- Today
- Total
HAMA 블로그
Vert.x 를 이용한 실시간 웹 어플리케이션 (3) 본문
순서
1. Vert.x 설치 및 Hello world !!
2. 간단히 Vert.x 다루어보기
3..Vert.x 와 MongoDB 연결
4. 실시간 통신
5. 모듈개발
6. 배포
먼저 MongoDB 를 설치해봅시다. (윈도우에)
1. https://www.mongodb.org/downloads 요기서 MSI 파일 다운로드후 설치 (더블클릭후 ㄱㄱ 씽)
2. 아무데나 폴더하나 만듭니다. ( 예: D:\mongodb\DATA)
3. mongod --dbpath d:\mongodb\DATA 치면 DB 가 실행됩니다.
4. mongo 치면 가지고 놀수있게 됩니다. (mongod 는 실행파일 / mongo 는 클라이언트)
1. app.js 를 다음과 같이 바꾸어봅니다.
var container = require("vertx/container");
container.deployModule("io.vertx~mod-web-server~2.0.0-final", {
port: 8080,
host: "localhost",
bridge: true,
inbound_permitted: [
{ address: 'mindMaps.list' },
{ address: 'mindMaps.save' },
{ address: 'mindMaps.delete' }
]
});
container.deployModule("io.vertx~mod-mongo-persistor~2.0.0-final", { // mongo 모듈이 추가되었네요 !
address: "mindMaps.persistor", // 모듈을 위한 이벤트 버스 주소
db_name: "mind_maps" // 이 퍼시스터가 사용할 데이타베이스 이름
});
container.deployVerticle('mindmaps.js');
2. mindmaps.js 를 다음과 같이 실제 db 연결로 바꾸어줍니다. (이전에는 메모리상의 객체를 사용했지요)
var eventBus = require('vertx/event_bus');
var console = require('vertx/console');
function sendPersistorEvent(command, callback) {
eventBus.send('mindMaps.persistor', command, function(reply) { // mongo 퍼시스터에 명령을 보내고
if (reply.status === "ok") { // 응답을 받은후에 핸들러 호출
callback(reply);
} else {
console.log(reply.message);
}
});
};
eventBus.registerHandler('mindMaps.list', function(args, responder) {
sendPersistorEvent(
{action: "find", collection: "mindMaps", matcher: {}}, // mindMaps 에서 모든것을 가져와서 응답~
function(reply) {
responder({mindMaps: reply.results});
}
);
});
eventBus.registerHandler('mindMaps.find', function(args, responder) {
sendPersistorEvent(
{action: "findone", collection: "mindMaps", matcher: {_id: args._id}}, // id 에 대당하는것을 리턴~
function(reply) {
responder({mindMap: reply.result});
}
);
});
eventBus.registerHandler('mindMaps.save', function(mindMap, responder) {
sendPersistorEvent(
{action: "save", collection: "mindMaps", document: mindMap}, // 새 mindMap 을 저장
function(reply) {
mindMap._id = reply._id;
responder(mindMap);
}
);
});
eventBus.registerHandler('mindMaps.delete', function(args, responder) {
sendPersistorEvent(
{action: "delete", collection: "mindMaps", matcher: {_id: args.id}},// id 를 가진 mindMap 객체 삭제 function(reply) {
responder({});
}
);
});
'Vert.x' 카테고리의 다른 글
Vert.x 클러스터링과 공유데이터 (0) | 2015.10.01 |
---|---|
Vert.x 를 이용한 실시간 웹 어플리케이션 (4) (0) | 2015.05.22 |
Vert.x 를 이용한 실시간 웹 어플리케이션 (2) (0) | 2015.05.22 |
Vert.x 를 이용한 실시간 웹 어플리케이션 (1) (0) | 2015.05.21 |
Vert.x 와 Node.js 비교 (0) | 2015.05.19 |