2

次のコードを使用して 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;
        }
    };
}

ありがとうございます!

4

1 に答える 1

0

Androidアプリをvertxサーバーと通信させたい場合は、別の方法を試すことができると思います.websocketを使用すると、 sockjsを使用してそれらの間の接続をセットアップするよりも簡単です。少し前に同様の要件を満たし、解決したためです。

Websocket 接続は双方向チャネルであるため、vertx アプリから Android アプリにテキストを送信したり、その逆を行ったりすることができます。同時に、Android アプリに使用できるJava-WebSocket ( http://java-websocket.org/ ) があります。使い方はとても簡単です。

また、vertx で websocket ハンドラーをセットアップするのは難しくありません。ドキュメントには多くの例があります。

幸運を、 :)

于 2013-12-22T08:22:02.390 に答える