|
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