我使用以下代码运行Vert.X SockJS服务器:
HttpServer httpServer = vertx.createHttpServer();
SockJSServer sockJSServer = vertx.createSockJSServer(httpServer);
JsonObject config = new JsonObject().putString("prefix", "/echo");
sockJSServer.installApp(config, new Handler<SockJSSocket>() {
public void handle(SockJSSocket sock) {
Pump.createPump(sock, sock).start();
}
});
httpServer.listen(8080);
现在我需要将消息从服务器发送到Android(反之亦然)应用程序,我不知道如何在客户端上设置它。该文档讨论了如何在JavaScript中处理它,但在浏览器上。
更新:我认为以下代码有一个正确的方向。我仍然需要添加主机IP地址(不确定如何)。
public void start() {
SockJSSocket client = new SockJSSocketBase(vertx){
@Override
public boolean writeQueueFull(){
// TODO Auto-generated method stub
return false;
}
@Override
public SockJSSocket setWriteQueueMaxSize(int arg0){
// TODO Auto-generated method stub
return null;
}
@Override
public SockJSSocket drainHandler(Handler<Void> arg0){
// TODO Auto-generated method stub
return null;
}
@Override
public SockJSSocket write(Buffer arg0){
// TODO Auto-generated method stub
return null;
}
@Override
public SockJSSocket exceptionHandler(Handler<Throwable> arg0){
// TODO Auto-generated method stub
return null;
}
@Override
public SockJSSocket resume(){
// TODO Auto-generated method stub
return null;
}
@Override
public SockJSSocket pause(){
// TODO Auto-generated method stub
return null;
}
@Override
public SockJSSocket dataHandler(Handler<Buffer> arg0){
// TODO Auto-generated method stub
return null;
}
@Override
public SockJSSocket endHandler(Handler<Void> arg0){
// TODO Auto-generated method stub
return null;
}
};
}
先谢谢!
答案 0 :(得分:0)
我认为你可以尝试不同的方式,如果你想让你的Android应用程序与vertx服务器通信:使用 websocket ,它比使用sockjs在它们之间建立连接更容易。因为我不久前遇到并解决了类似的要求。
因为websocket连接是双向通道,这意味着vertx应用程序可以将文本发送到您的Android应用程序,反之亦然。同时,还有Java-WebSocket(http://java-websocket.org/)可用于您的Android应用程序。它非常易于使用。
另外,在vertx中设置websocket处理程序并不难,文档中有很多例子。
祝你好运,:))