2015-07-19 275 views
-1

我想設置一個android socket.io客戶端,但我遇到了一些困難。現在我正在使用這個庫:https://github.com/nkzawa/socket.io-client.java,當我們關閉中間件時,一切都很好。當它打開時,我需要在連接到服務器時發送一個頭,但據我所知,這個庫不提供這種可能性。那麼有人可以提出一個不同的圖書館或分享解決這個問題的解決方法嗎?Android socket.io客戶端

謝謝

回答

0

我正在使用這個庫一段時間,發現它非常充足。 如果你喜歡發送標題,你可以按照下面的示例; 對於版本[0.6.0](以前的版本是有點不同)

1 - 創建socket.io客戶

 IO.Options opts = new IO.Options(); 

     socket = IO.socket("http://server_address", opts); 
     socket.io().on(Manager.EVENT_TRANSPORT, onTransport); 

2 - 實施回調處理程序onTransport

private Emitter.Listener onTransport = new Emitter.Listener() { 
    @Override 
    public void call(Object... args) { 

     Transport transport = (Transport)args[0]; 
     transport.on(Transport.EVENT_REQUEST_HEADERS, new Emitter.Listener() { 
      @Override 
      public void call(Object... args) { 
       @SuppressWarnings("unchecked") 
       Map<String, List<String>> headers = (Map<String, List<String>>) args[0]; 
       String bearer = "bearer " + session.token; 
       headers.put("Authorization", Arrays.asList(bearer)); 
      } 
     }).on(Transport.EVENT_RESPONSE_HEADERS, new Emitter.Listener() { 
      @Override 
      public void call(Object... args) { 
      } 
     }); 
    } 
};   

在上面的例子,我設置了Authorization標題,但你可以自由設置你需要的任何東西。