@@ -36,6 +36,7 @@ public class WebSocketClient {
36
36
private Handler mHandler ;
37
37
private List <BasicNameValuePair > mExtraHeaders ;
38
38
private HybiParser mParser ;
39
+ private boolean mConnected ;
39
40
40
41
private final Object mSendLock = new Object ();
41
42
@@ -47,8 +48,9 @@ public static void setTrustManagers(TrustManager[] tm) {
47
48
48
49
public WebSocketClient (URI uri , Listener listener , List <BasicNameValuePair > extraHeaders ) {
49
50
mURI = uri ;
50
- mListener = listener ;
51
+ mListener = listener ;
51
52
mExtraHeaders = extraHeaders ;
53
+ mConnected = false ;
52
54
mParser = new HybiParser (this );
53
55
54
56
mHandlerThread = new HandlerThread ("websocket-thread" );
@@ -119,17 +121,21 @@ public void run() {
119
121
120
122
mListener .onConnect ();
121
123
124
+ mConnected = true ;
125
+
122
126
// Now decode websocket frames.
123
127
mParser .start (stream );
124
128
125
129
} catch (EOFException ex ) {
126
130
Log .d (TAG , "WebSocket EOF!" , ex );
127
131
mListener .onDisconnect (0 , "EOF" );
132
+ mConnected = false ;
128
133
129
134
} catch (SSLException ex ) {
130
135
// Connection reset by peer
131
136
Log .d (TAG , "Websocket SSL error!" , ex );
132
137
mListener .onDisconnect (0 , "SSL" );
138
+ mConnected = false ;
133
139
134
140
} catch (Exception ex ) {
135
141
mListener .onError (ex );
@@ -147,6 +153,7 @@ public void run() {
147
153
try {
148
154
mSocket .close ();
149
155
mSocket = null ;
156
+ mConnected = false ;
150
157
} catch (IOException ex ) {
151
158
Log .d (TAG , "Error while disconnecting" , ex );
152
159
mListener .onError (ex );
@@ -164,6 +171,10 @@ public void send(byte[] data) {
164
171
sendFrame (mParser .frame (data ));
165
172
}
166
173
174
+ public boolean isConnected () {
175
+ return mConnected ;
176
+ }
177
+
167
178
private StatusLine parseStatusLine (String line ) {
168
179
if (TextUtils .isEmpty (line )) {
169
180
return null ;
0 commit comments