我正在开发一个应用程序,它将使用 Ver.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);
}
}
});
客户端.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 文件中以显示数据。谢谢
最佳答案
为什么你不使用 websockets..你也可以检查事件总线桥......它允许你从浏览器的事件总线发送和接收数据(基本上你像其他 eventBus 一样使用 websocket)
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>
这里您的服务器中有一个名为“some-addres”的总线,然后您可以直接从浏览器发送数据 2)
你可以注册一个事件总线并从你的服务器向它发送数据...... 这很清楚,只记得正确配置您的总线,允许或不允许哪些总线在浏览器中可见..
vertx.createSockJSServer(server).bridge(config, noPermitted, noPermitted);
关于javascript - 在基于 Vert.x 的应用程序中将从服务器接收到的数据传递给浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28849319/