88
99import  java .net .URI ;
1010import  java .util .ArrayList ;
11+ import  java .util .HashMap ;
1112import  java .util .List ;
13+ import  java .util .Map ;
1214
1315import  rx .Observable ;
1416import  rx .Subscriber ;
@@ -21,16 +23,19 @@ public class WebSocketsConnectionProvider implements ConnectionProvider {
2123    private  static  final  String  TAG  = WebSocketsConnectionProvider .class .getSimpleName ();
2224
2325    private  final  String  mUri ;
26+     private  final  Map <String , String > mConnectHttpHeaders ;
2427    private  WebSocketClient  mWebSocketClient ;
2528    private  List <Subscriber <? super  LifecycleEvent >> mLifecycleSubscribers ;
2629    private  List <Subscriber <? super  String >> mMessagesSubscribers ;
2730    private  boolean  haveConnection ;
2831
2932    /** 
3033     * Support UIR scheme ws://host:port/path 
34+      * @param connectHttpHeaders may be null 
3135     */ 
32-     public  WebSocketsConnectionProvider (String  uri ) {
36+     public  WebSocketsConnectionProvider (String  uri ,  Map < String ,  String >  connectHttpHeaders ) {
3337        mUri  = uri ;
38+         mConnectHttpHeaders  = connectHttpHeaders  != null  ? connectHttpHeaders  : new  HashMap <>();
3439        mLifecycleSubscribers  = new  ArrayList <>();
3540        mMessagesSubscribers  = new  ArrayList <>();
3641    }
@@ -56,7 +61,7 @@ private void createWebSocketConnection() {
5661        if  (haveConnection )
5762            throw  new  IllegalStateException ("Already have connection to web socket" );
5863
59-         mWebSocketClient  = new  WebSocketClient (URI .create (mUri ), new  Draft_17 ()) {
64+         mWebSocketClient  = new  WebSocketClient (URI .create (mUri ), new  Draft_17 (),  mConnectHttpHeaders ,  0 ) {
6065            @ Override 
6166            public  void  onOpen (ServerHandshake  handshakeData ) {
6267                emitLifecycleEvent (new  LifecycleEvent (LifecycleEvent .Type .OPENED ));
0 commit comments