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