@@ -36,6 +36,7 @@ public class WebSocketClient {
3636 private Handler mHandler ;
3737 private List <BasicNameValuePair > mExtraHeaders ;
3838 private HybiParser mParser ;
39+ private boolean mConnected ;
3940
4041 private final Object mSendLock = new Object ();
4142
@@ -47,8 +48,9 @@ public static void setTrustManagers(TrustManager[] tm) {
4748
4849 public WebSocketClient (URI uri , Listener listener , List <BasicNameValuePair > extraHeaders ) {
4950 mURI = uri ;
50- mListener = listener ;
51+ mListener = listener ;
5152 mExtraHeaders = extraHeaders ;
53+ mConnected = false ;
5254 mParser = new HybiParser (this );
5355
5456 mHandlerThread = new HandlerThread ("websocket-thread" );
@@ -119,17 +121,21 @@ public void run() {
119121
120122 mListener .onConnect ();
121123
124+ mConnected = true ;
125+
122126 // Now decode websocket frames.
123127 mParser .start (stream );
124128
125129 } catch (EOFException ex ) {
126130 Log .d (TAG , "WebSocket EOF!" , ex );
127131 mListener .onDisconnect (0 , "EOF" );
132+ mConnected = false ;
128133
129134 } catch (SSLException ex ) {
130135 // Connection reset by peer
131136 Log .d (TAG , "Websocket SSL error!" , ex );
132137 mListener .onDisconnect (0 , "SSL" );
138+ mConnected = false ;
133139
134140 } catch (Exception ex ) {
135141 mListener .onError (ex );
@@ -147,6 +153,7 @@ public void run() {
147153 try {
148154 mSocket .close ();
149155 mSocket = null ;
156+ mConnected = false ;
150157 } catch (IOException ex ) {
151158 Log .d (TAG , "Error while disconnecting" , ex );
152159 mListener .onError (ex );
@@ -164,6 +171,10 @@ public void send(byte[] data) {
164171 sendFrame (mParser .frame (data ));
165172 }
166173
174+ public boolean isConnected () {
175+ return mConnected ;
176+ }
177+
167178 private StatusLine parseStatusLine (String line ) {
168179 if (TextUtils .isEmpty (line )) {
169180 return null ;
0 commit comments