|
3 | 3 | import java.io.IOException; |
4 | 4 | import java.io.InputStream; |
5 | 5 | import java.io.OutputStream; |
6 | | -import java.lang.ref.WeakReference; |
7 | 6 | import java.net.InetSocketAddress; |
8 | 7 | import java.net.Proxy; |
9 | 8 | import java.net.Socket; |
@@ -47,8 +46,7 @@ public abstract class WebSocketClient extends WebSocketAdapter implements Runnab |
47 | 46 |
|
48 | 47 | private Proxy proxy = Proxy.NO_PROXY; |
49 | 48 |
|
50 | | - private WeakReference<Thread> readThread; |
51 | | - private WeakReference<Thread> writeThread; |
| 49 | + private Thread writeThread; |
52 | 50 |
|
53 | 51 | private Draft draft; |
54 | 52 |
|
@@ -157,11 +155,10 @@ public void setTcpNoDelay( boolean tcpNoDelay ) { |
157 | 155 | * Initiates the websocket connection. This method does not block. |
158 | 156 | */ |
159 | 157 | public void connect() { |
160 | | - if( readThread != null ) |
| 158 | + if( writeThread != null ) |
161 | 159 | throw new IllegalStateException( "WebSocketClient objects are not reuseable" ); |
162 | | - Thread reader = new Thread( this ,"WebsocketReadThread"); |
163 | | - reader.start(); |
164 | | - readThread = new WeakReference<Thread>( reader ); |
| 160 | + writeThread = new Thread( this ); |
| 161 | + writeThread.start(); |
165 | 162 | } |
166 | 163 |
|
167 | 164 | /** |
@@ -233,9 +230,8 @@ public void run() { |
233 | 230 | return; |
234 | 231 | } |
235 | 232 |
|
236 | | - Thread write = new Thread( new WebsocketWriteThread() ); |
237 | | - write.start(); |
238 | | - writeThread = new WeakReference<Thread>( write ); |
| 233 | + writeThread = new Thread( new WebsocketWriteThread() ); |
| 234 | + writeThread.start(); |
239 | 235 |
|
240 | 236 | byte[] rawbuffer = new byte[ WebSocketImpl.RCVBUF ]; |
241 | 237 | int readBytes; |
@@ -332,10 +328,8 @@ public final void onWebsocketOpen( WebSocket conn, Handshakedata handshake ) { |
332 | 328 | */ |
333 | 329 | @Override |
334 | 330 | public final void onWebsocketClose( WebSocket conn, int code, String reason, boolean remote ) { |
335 | | - if( writeThread != null && writeThread.get() != null) |
336 | | - writeThread.get().interrupt(); |
337 | | - if( readThread != null && readThread.get() != null) |
338 | | - readThread.get().interrupt(); |
| 331 | + if( writeThread != null ) |
| 332 | + writeThread.interrupt(); |
339 | 333 | try { |
340 | 334 | if( socket != null ) |
341 | 335 | socket.close(); |
|
0 commit comments