Skip to content

Commit d3a347f

Browse files
committed
API for getting handshake http headers
1 parent 922175d commit d3a347f

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

lib/src/main/java/ua/naiksoftware/stomp/LifecycleEvent.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package ua.naiksoftware.stomp;
22

33

4+
import java.util.TreeMap;
5+
46
/**
57
* Created by naik on 05.05.16.
68
*/
@@ -18,6 +20,8 @@ public enum Type {
1820
//Nullable
1921
private String mMessage;
2022

23+
private TreeMap<String, String> handshakeResponseHeaders = new TreeMap<>();
24+
2125
public LifecycleEvent(Type type) {
2226
mType = type;
2327
}
@@ -43,4 +47,12 @@ public Exception getException() {
4347
public String getMessage() {
4448
return mMessage;
4549
}
50+
51+
public void setHandshakeResponseHeaders(TreeMap<String, String> handshakeResponseHeaders) {
52+
this.handshakeResponseHeaders = handshakeResponseHeaders;
53+
}
54+
55+
public TreeMap<String, String> getHandshakeResponseHeaders() {
56+
return handshakeResponseHeaders;
57+
}
4658
}

lib/src/main/java/ua/naiksoftware/stomp/WebSocketsConnectionProvider.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import java.net.URI;
1313
import java.util.ArrayList;
1414
import java.util.HashMap;
15+
import java.util.Iterator;
1516
import java.util.List;
1617
import java.util.Map;
18+
import java.util.TreeMap;
1719

1820
import rx.Observable;
1921
import rx.Subscriber;
@@ -31,6 +33,7 @@ public class WebSocketsConnectionProvider implements ConnectionProvider {
3133
private List<Subscriber<? super LifecycleEvent>> mLifecycleSubscribers;
3234
private List<Subscriber<? super String>> mMessagesSubscribers;
3335
private boolean haveConnection;
36+
private TreeMap<String, String> mServerHandshakeHeaders;
3437

3538
/**
3639
* Support UIR scheme ws://host:port/path
@@ -68,12 +71,19 @@ private void createWebSocketConnection() {
6871

6972
@Override
7073
public void onWebsocketHandshakeReceivedAsClient(WebSocket conn, ClientHandshake request, ServerHandshake response) throws InvalidDataException {
71-
super.onWebsocketHandshakeReceivedAsClient(conn, request, response);
74+
mServerHandshakeHeaders = new TreeMap<>();
75+
Iterator<String> keys = response.iterateHttpFields();
76+
while (keys.hasNext()) {
77+
String key = keys.next();
78+
mServerHandshakeHeaders.put(key, response.getFieldValue(key));
79+
}
7280
}
7381

7482
@Override
7583
public void onOpen(ServerHandshake handshakeData) {
76-
emitLifecycleEvent(new LifecycleEvent(LifecycleEvent.Type.OPENED));
84+
LifecycleEvent openEvent = new LifecycleEvent(LifecycleEvent.Type.OPENED);
85+
openEvent.setHandshakeResponseHeaders(mServerHandshakeHeaders);
86+
emitLifecycleEvent(openEvent);
7787
}
7888

7989
@Override

0 commit comments

Comments
 (0)