我有一个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;
}
};
}发布于 2013-12-22 08:22:02
我认为你可以尝试一种不同的方式,如果你想让你的安卓应用程序和一个vertx服务器对话:使用websocket,比使用sockjs在它们之间建立连接更容易。因为不久前我满足并解决了一个类似的要求。
因为websocket连接是双向通道,这意味着vertx应用程序可以向android应用程序发送文本,反之亦然。同时,还有Java(http://java-websocket.org/),您可以在安卓应用程序中使用它。它很容易使用。
此外,在vertx中设置websocket处理程序并不困难,文档中有很多示例。
https://stackoverflow.com/questions/19696934
复制相似问题