2015-03-04 4 views
2

Я разрабатываю приложение, которое будет отображать данные в браузере, полученном с сервера с помощью Ver.x. Итак, у меня есть следующие модули:Передача данных, полученных с сервера на браузер, в приложении на основе Vert.x

Server.java:

NetServer server = vertxx.createNetServer(); 

    server.connectHandler(new Handler<NetSocket>() { 

     @Override 
     public void handle(final NetSocket sock) { 

      System.out.println("A client has connected");     

      while (true) {   
       //Sending Message to Client after each five seconds 
       Thread.sleep(5000); 
       socket.write("HELLO Server: I am Client: " + i);      
      }       
     } 
    }); 

client.js:

var client = vertx.createNetClient(); 

client.connect(1234, 'localhost', function(err, sock) { 

    sock.dataHandler(function(buffer) { 
     //Here I received data sent from server. Now, I want to show this data on browser. 
    }); 
}); 

Итак, я хочу, чтобы показать данные на браузер, полученные на клиенте от сервера. Каковы могут быть возможности для этого? Как я могу показывать эти данные в браузере постепенно, как получено на клиенте с сервера? Должен ли я использовать какой-то третий компонент, такой как шина событий вершины? Мне нужно добавить его в некоторый HTML-файл для отображения данных. Благодаря

ответ

1

почему вы не используете websockets..also вы можете проверить шины событий моста ... который позволяет отправлять и получать данные из шины событий из вашего браузера (в основном вы используете WebSocket, как и другие eventBus)

http://vertx.io/core_manual_java.html#sockjs-eventbus-bridge 

<script src="http://cdn.sockjs.org/sockjs-0.3.4.min.js"></script> 
<script src='vertxbus.js'></script> 

<script> 

    var eb = new vertx.EventBus('http://localhost:8080/eventbus'); 

    eb.onopen = function() { 

     eb.registerHandler('some-address', function(message) { 

     console.log('received a message: ' + JSON.stringify(message); 

     }); 

     eb.send('some-address', {name: 'tim', age: 587}); //--------2) 

    } 

</script> 

здесь у вас есть автобус на сервере с именем «некоторые-то» Адресная вы можете отправить данные непосредственно из вашего браузера 2)

и вы можете зарегистрировать eventbus и отправить данные с сервера ... Это довольно ясно, только помните, что правильно настройте свою шину, или нет, какая шина находится в браузере.

vertx.createSockJSServer(server).bridge(config, noPermitted, noPermitted); 
+1

Извините, я забыл добавить URL-адрес ... где-то это ... http: //vertx.io/core_manual_java.html#sockjs-eventbus-bridge – CocoOS