Skip to content

Commit aa8ed15

Browse files
committed
using SelectionKeys.interestOps instead of unnecessarily bothering the selector
1 parent 9ef3c1c commit aa8ed15

File tree

2 files changed

+6
-23
lines changed

2 files changed

+6
-23
lines changed

src/org/java_websocket/WebSocketImpl.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import java.util.concurrent.BlockingQueue;
1414
import java.util.concurrent.LinkedBlockingQueue;
1515

16-
import org.java_websocket.client.WebSocketClient;
1716
import org.java_websocket.drafts.Draft;
1817
import org.java_websocket.drafts.Draft.CloseHandshakeType;
1918
import org.java_websocket.drafts.Draft.HandshakeState;
@@ -34,7 +33,6 @@
3433
import org.java_websocket.handshake.Handshakedata;
3534
import org.java_websocket.handshake.ServerHandshake;
3635
import org.java_websocket.handshake.ServerHandshakeBuilder;
37-
import org.java_websocket.server.WebSocketServer;
3836
import org.java_websocket.server.WebSocketServer.WebSocketWorker;
3937
import org.java_websocket.util.Charsetfunctions;
4038

@@ -106,20 +104,9 @@ public class WebSocketImpl extends WebSocket {
106104
/** stores the handshake sent by this websocket ( Role.CLIENT only ) */
107105
private ClientHandshake handshakerequest = null;
108106

109-
110-
// CONSTRUCTOR /////////////////////////////////////////////////////////////
111107
/**
112-
* Used in {@link WebSocketServer} and {@link WebSocketClient}.
113-
*
114-
* @param socketchannel
115-
* The <tt>SocketChannel</tt> instance to read and
116-
* write to. The channel should already be registered
117-
* with a Selector before construction of this object.
118-
* @param listener
119-
* The {@link WebSocketListener} to notify of events when
120-
* they occur.
108+
* crates a websocket with server role
121109
*/
122-
123110
public WebSocketImpl( WebSocketListener listener , List<Draft> drafts , Socket sock ) {
124111
this( listener, (Draft) null, sock );
125112
this.role = Role.SERVER;
@@ -134,6 +121,9 @@ public WebSocketImpl( WebSocketListener listener , List<Draft> drafts , Socket s
134121
}
135122
}
136123

124+
/**
125+
* crates a websocket with client role
126+
*/
137127
public WebSocketImpl( WebSocketListener listener , Draft draft , Socket sock ) {
138128
this.outQueue = new LinkedBlockingQueue<ByteBuffer>();
139129
inQueue = new LinkedBlockingQueue<ByteBuffer>();

src/org/java_websocket/server/WebSocketServer.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.nio.ByteBuffer;
99
import java.nio.channels.ByteChannel;
1010
import java.nio.channels.CancelledKeyException;
11-
import java.nio.channels.ClosedChannelException;
1211
import java.nio.channels.SelectionKey;
1312
import java.nio.channels.Selector;
1413
import java.nio.channels.ServerSocketChannel;
@@ -347,17 +346,11 @@ private void pushBuffer( ByteBuffer buf ) throws InterruptedException {
347346
buffers.put( buf );
348347
}
349348

350-
private void registerWrite() {
349+
private void registerWrite() throws CancelledKeyException {
351350
int size = oqueue.size();
352351
for( int i = 0 ; i < size ; i++ ) {
353352
WebSocketImpl conn = oqueue.remove();
354-
try {
355-
conn.key.channel().register( selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE, conn );
356-
} catch ( ClosedChannelException ex ) {
357-
onWebsocketError( null, ex );
358-
conn.eot( null );
359-
return;
360-
}
353+
conn.key.interestOps( SelectionKey.OP_READ | SelectionKey.OP_WRITE );
361354
}
362355
}
363356

0 commit comments

Comments
 (0)