34
34
import java .util .concurrent .ConcurrentLinkedQueue ;
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 >();
@@ -150,29 +151,28 @@ public void onBinaryFragment(byte[] message, boolean last) {
150
151
151
152
if (byteBuffer .size () > maxBufferSize ) {
152
153
byteBuffer .reset ();
153
- Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + getMaxBufferSize () );
154
+ Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + maxBufferSize );
154
155
onError (e );
155
- this . close ();
156
+ close ();
156
157
return ;
157
158
}
158
159
}
159
160
160
- for (WebSocketListener l : listeners ) {
161
- if (l instanceof WebSocketByteListener ) {
161
+ for (WebSocketListener listener : listeners ) {
162
+ if (listener instanceof WebSocketByteListener ) {
163
+ WebSocketByteListener byteListener = (WebSocketByteListener ) listener ;
162
164
try {
163
165
if (!last ) {
164
- WebSocketByteListener .class .cast (l ).onFragment (message , last );
166
+ byteListener .onFragment (message , last );
167
+ } else if (byteBuffer .size () > 0 ) {
168
+ byteBuffer .write (message );
169
+ byteListener .onFragment (message , last );
170
+ byteListener .onMessage (byteBuffer .toByteArray ());
165
171
} else {
166
- if (byteBuffer .size () > 0 ) {
167
- byteBuffer .write (message );
168
- WebSocketByteListener .class .cast (l ).onFragment (message , last );
169
- WebSocketByteListener .class .cast (l ).onMessage (byteBuffer .toByteArray ());
170
- } else {
171
- WebSocketByteListener .class .cast (l ).onMessage (message );
172
- }
172
+ byteListener .onMessage (message );
173
173
}
174
174
} catch (Exception ex ) {
175
- l .onError (ex );
175
+ listener .onError (ex );
176
176
}
177
177
}
178
178
}
@@ -189,9 +189,9 @@ public void onTextFragment(String message, boolean last) {
189
189
190
190
if (textBuffer .length () > maxBufferSize ) {
191
191
textBuffer .setLength (0 );
192
- Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + getMaxBufferSize () );
192
+ Exception e = new Exception ("Exceeded Netty Web Socket maximum buffer size of " + maxBufferSize );
193
193
onError (e );
194
- this . close ();
194
+ close ();
195
195
return ;
196
196
}
197
197
}
@@ -202,13 +202,11 @@ public void onTextFragment(String message, boolean last) {
202
202
try {
203
203
if (!last ) {
204
204
textListener .onFragment (message , last );
205
+ } else if (textBuffer .length () > 0 ) {
206
+ textListener .onFragment (message , last );
207
+ textListener .onMessage (textBuffer .append (message ).toString ());
205
208
} else {
206
- if (textBuffer .length () > 0 ) {
207
- textListener .onFragment (message , last );
208
- textListener .onMessage (textBuffer .append (message ).toString ());
209
- } else {
210
- textListener .onMessage (message );
211
- }
209
+ textListener .onMessage (message );
212
210
}
213
211
} catch (Exception ex ) {
214
212
listener .onError (ex );
@@ -221,11 +219,11 @@ public void onTextFragment(String message, boolean last) {
221
219
}
222
220
223
221
public void onError (Throwable t ) {
224
- for (WebSocketListener l : listeners ) {
222
+ for (WebSocketListener listener : listeners ) {
225
223
try {
226
- l .onError (t );
224
+ listener .onError (t );
227
225
} catch (Throwable t2 ) {
228
- logger .error ("" , t2 );
226
+ LOGGER .error ("" , t2 );
229
227
}
230
228
231
229
}
@@ -236,14 +234,14 @@ public void onClose() {
236
234
}
237
235
238
236
public void onClose (int code , String reason ) {
239
- for (WebSocketListener l : listeners ) {
237
+ for (WebSocketListener listener : listeners ) {
240
238
try {
241
- if (l instanceof WebSocketCloseCodeReasonListener ) {
242
- WebSocketCloseCodeReasonListener .class .cast (l ).onClose (this , code , reason );
239
+ if (listener instanceof WebSocketCloseCodeReasonListener ) {
240
+ WebSocketCloseCodeReasonListener .class .cast (listener ).onClose (this , code , reason );
243
241
}
244
- l .onClose (this );
242
+ listener .onClose (this );
245
243
} catch (Throwable t ) {
246
- l .onError (t );
244
+ listener .onError (t );
247
245
}
248
246
}
249
247
}
0 commit comments