vertx eventbus 예제

이 예제에서는 HTTP 서버가 요청을 수신하고 전체 요청 본문을 완전히 메모리에 저장하지 않고 요청 본문을 디스크의 파일로 펌핑하는 방법을 보여 줍니다. 이 예제에서는 Vert.x http 서버를 사용하여 디스크에서 정적 파일을 제공하는 방법을 보여 줍니다. 자바 실행 차단 특정 작업자 풀 코드 예제에서 vert.x 구성을 사용자 지정 시작 합니다시작 Vertx 간단한 TCP 에코 서버를 작성 합니다. 서버는 연결을 허용하고 수신된 모든 데이터는 연결에 다시 에코됩니다. 위의 예제에 문제가 있습니다: 소켓에서 데이터를 더 빨리 소켓에 다시 쓸 수 있는 경우 NetSocket의 쓰기 큐에 쌓이게 되어 결국 RAM이 부족해집니다. 예를 들어 소켓의 다른 쪽 끝에 있는 클라이언트가 충분히 빠르게 읽지 않아 연결에 역압을 가하는 경우 이러한 일이 발생할 수 있습니다. 예를 들어 간단한 ASCII 텍스트 프로토콜이 `n`으로 구분되고 입력이 다음과 같은 경우 이 예제에서는 수신자와 보낸 자 간의 게시/구독 메시징을 보여 줍니다. Pub/sub 메시징을 사용하면 모두 게시자로부터 메시지를 받는 여러 구독자를 가질 수 있습니다. String /svc는 메시지를 게시하고 사용하는 것을 선호하는 경우 토픽 또는 주소입니다. 위의 예에서는 주소 /svc로 전송(또는 게시된) 모든 것에 대한 이벤트 버스를 듣고 있습니다. 주소의 이름을 지정하는 방법은 전적으로 여러분에게 달려 있습니다.

이 예제에서는 verticles가 NPM 모듈 형식을 사용하고, 이 형식을 사용하여 verticles를 배포하고, 다른 NPM을 필요로 하는 방법을 보여 주며, 이러한 프레임을 보내려면 응답에 writeCustomFrame을 사용할 수 있습니다. 다음은 스트리밍 JsonParser를 사용하여 거대한 작은 개체 배열을 구문 분석하는 방법을 설명하는 간단한 예제입니다. 이는 Echo 예제와 동일하지만 SSL을 사용하여 HTTP/1.x 연결을 암호화하면 클라이언트가 서버에 이미 있는 리소스를 업로드하는 경우와 같이 요청 또는 응답 스트림을 새로 재설정할 수 없습니다. 정기 타이머를 취소하려면 타이머 ID를 지정하는 canceltimer를 호출합니다. 예를 들어 간단한 예제와 마찬가지로 HTTP 대신 HTTPS를 사용하는 경우 이 예제에서는 두 가지 유형의 수신기가 있습니다. 첫 번째는 보낸 사람에서 배포되는 로컬 형식이며, 다른 하나는 다른 클러스터 인스턴스에서 시작된 클러스터 전체 형식입니다. 따라서 MessageCodec이 로컬 EventBus 및 클러스터된 EventBus에서 다르게 작동하는 방식을 볼 수 있습니다. 예를 들어 동일한 Vert.x 인스턴스에 동일한 클래스 이름을 가진 두 개의 서로 다른 버전의 verticle을 배포하려는 경우 또는 동일한 jar 라이브러리의 다른 버전을 사용하는 두 개의 다른 verticle이 있는 경우일 수 있습니다. 비동기 메서드를 사용 하 여 몇 가지 예제를 살펴보겠습니다: 다음 예제에서 값 200 한 바이트로 지정 된 위치에 설정 됩니다.다음 예제는 이벤트 버스를 클라이언트 측 JavaScript에 브리지: 호출에서 응답 처리기를 제공 하는 대신 클라이언트 요청 개체를 만들 수도 있습니다., 요청을 만들 때 처리기를 제공할 수 없습니다 및 요청 개체 자체에 나중에 설정, 예를 들어: 예를 들어 NetServer를 만드는 verticle를 배포 한 경우 NetSocket 인스턴스는 처리기의 처리기에서 항상 verticle의 이벤트 루프에서 해당 소켓 인스턴스에 액세스하는 것이 가장 좋습니다.

vertx eventbus 예제