2013-10-31 60 views
1

我使用下面的代碼Vert.X SockJS服務器上運行:與Vert.X SockJS服務器的Android 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

我想你可以嘗試一種不同的方式,如果你想讓你的android應用程序與vertx服務器交談:使用websocket,它比使用sockjs建立它們之間的連接更容易。因爲我不久前遇到並解決了類似的要求。

因爲websocket連接是一個雙向通道,這意味着vertx應用程序可以發送文本到您的android應用程序,反之亦然。同時,還有Java-WebSocket(http://java-websocket.org/),您可以將它用於您的Android應用程序。這是非常容易使用。

此外,要在vertx中設置websocket處理程序並不難,文檔中有很多示例。

祝你好運,:)

相關問題