34
34
import static org .jboss .netty .buffer .ChannelBuffers .wrappedBuffer ;
35
35
36
36
public class NettyWebSocket implements WebSocket {
37
- private final static Logger logger = LoggerFactory .getLogger (NettyWebSocket .class );
37
+
38
+ private static final Logger LOGGER = LoggerFactory .getLogger (NettyWebSocket .class );
38
39
39
40
private final Channel channel ;
40
41
private final ConcurrentLinkedQueue <WebSocketListener > listeners = new ConcurrentLinkedQueue <WebSocketListener >();
@@ -142,29 +143,28 @@ public void onBinaryFragment(byte[] message, boolean last) {
142
143
143
144
if (byteBuffer .size () > maxBufferSize ) {
144
145
byteBuffer .reset ();
145
- Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + getMaxBufferSize () );
146
+ Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + maxBufferSize );
146
147
onError (e );
147
- this . close ();
148
+ close ();
148
149
return ;
149
150
}
150
151
}
151
152
152
- for (WebSocketListener l : listeners ) {
153
- if (l instanceof WebSocketByteListener ) {
153
+ for (WebSocketListener listener : listeners ) {
154
+ if (listener instanceof WebSocketByteListener ) {
155
+ WebSocketByteListener byteListener = (WebSocketByteListener ) listener ;
154
156
try {
155
157
if (!last ) {
156
- WebSocketByteListener .class .cast (l ).onFragment (message , last );
158
+ byteListener .onFragment (message , last );
159
+ } else if (byteBuffer .size () > 0 ) {
160
+ byteBuffer .write (message );
161
+ byteListener .onFragment (message , last );
162
+ byteListener .onMessage (byteBuffer .toByteArray ());
157
163
} else {
158
- if (byteBuffer .size () > 0 ) {
159
- byteBuffer .write (message );
160
- WebSocketByteListener .class .cast (l ).onFragment (message , last );
161
- WebSocketByteListener .class .cast (l ).onMessage (byteBuffer .toByteArray ());
162
- } else {
163
- WebSocketByteListener .class .cast (l ).onMessage (message );
164
- }
164
+ byteListener .onMessage (message );
165
165
}
166
166
} catch (Exception ex ) {
167
- l .onError (ex );
167
+ listener .onError (ex );
168
168
}
169
169
}
170
170
}
@@ -181,9 +181,9 @@ public void onTextFragment(String message, boolean last) {
181
181
182
182
if (textBuffer .length () > maxBufferSize ) {
183
183
textBuffer .setLength (0 );
184
- Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + getMaxBufferSize () );
184
+ Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + maxBufferSize );
185
185
onError (e );
186
- this . close ();
186
+ close ();
187
187
return ;
188
188
}
189
189
}
@@ -194,13 +194,11 @@ public void onTextFragment(String message, boolean last) {
194
194
try {
195
195
if (!last ) {
196
196
textlistener .onFragment (message , last );
197
+ } else if (textBuffer .length () > 0 ) {
198
+ textlistener .onFragment (message , last );
199
+ textlistener .onMessage (textBuffer .append (message ).toString ());
197
200
} else {
198
- if (textBuffer .length () > 0 ) {
199
- textlistener .onFragment (message , last );
200
- textlistener .onMessage (textBuffer .append (message ).toString ());
201
- } else {
202
- textlistener .onMessage (message );
203
- }
201
+ textlistener .onMessage (message );
204
202
}
205
203
} catch (Exception ex ) {
206
204
listener .onError (ex );
@@ -214,13 +212,12 @@ public void onTextFragment(String message, boolean last) {
214
212
}
215
213
216
214
public void onError (Throwable t ) {
217
- for (WebSocketListener l : listeners ) {
215
+ for (WebSocketListener listener : listeners ) {
218
216
try {
219
- l .onError (t );
217
+ listener .onError (t );
220
218
} catch (Throwable t2 ) {
221
- logger .error ("" , t2 );
219
+ LOGGER .error ("" , t2 );
222
220
}
223
-
224
221
}
225
222
}
226
223
@@ -243,8 +240,6 @@ public void onClose(int code, String reason) {
243
240
244
241
@ Override
245
242
public String toString () {
246
- return "NettyWebSocket{" +
247
- "channel=" + channel +
248
- '}' ;
243
+ return "NettyWebSocket{channel=" + channel + '}' ;
249
244
}
250
245
}
0 commit comments