带有Vert.X SockJS服务器的Android SockJS

时间:2013-10-31 01:35:38

标签: android sockjs vert.x

我使用以下代码运行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;
        }
    };
}

先谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你可以尝试不同的方式,如果你想让你的Android应用程序与vertx服务器通信:使用 websocket ,它比使用sockjs在它们之间建立连接更容易。因为我不久前遇到并解决了类似的要求。

因为websocket连接是双向通道,这意味着vertx应用程序可以将文本发送到您的Android应用程序,反之亦然。同时,还有Java-WebSocket(http://java-websocket.org/)可用于您的Android应用程序。它非常易于使用。

另外,在vertx中设置websocket处理程序并不难,文档中有很多例子。

祝你好运,:))