27
27
public class WebSocketUpgradeHandler implements UpgradeHandler <WebSocket >, AsyncHandler <WebSocket > {
28
28
29
29
private WebSocket webSocket ;
30
- private final ConcurrentLinkedQueue <WebSocketListener > l ;
31
- @ SuppressWarnings ("unused" )
32
- private final String protocol ;
33
- @ SuppressWarnings ("unused" )
34
- private final long maxByteSize ;
35
- @ SuppressWarnings ("unused" )
36
- private final long maxTextSize ;
30
+ private final ConcurrentLinkedQueue <WebSocketListener > listeners ;
37
31
private final AtomicBoolean ok = new AtomicBoolean (false );
38
32
private final AtomicBoolean onSuccessCalled = new AtomicBoolean (false );
39
33
private int status ;
40
34
41
- private WebSocketUpgradeHandler (Builder b ) {
42
- l = b .l ;
43
- protocol = b .protocol ;
44
- maxByteSize = b .maxByteSize ;
45
- maxTextSize = b .maxTextSize ;
35
+ public WebSocketUpgradeHandler (ConcurrentLinkedQueue <WebSocketListener > listeners ) {
36
+ this .listeners = listeners ;
46
37
}
47
38
48
39
/**
@@ -93,8 +84,9 @@ public final STATE onHeadersReceived(HttpResponseHeaders headers) throws Excepti
93
84
public final WebSocket onCompleted () throws Exception {
94
85
95
86
if (status != 101 ) {
96
- for (WebSocketListener w : l ) {
97
- w .onError (new IllegalStateException (String .format ("Invalid Status Code %d" , status )));
87
+ IllegalStateException e = new IllegalStateException ("Invalid Status Code " + status );
88
+ for (WebSocketListener listener : listeners ) {
89
+ listener .onError (e );
98
90
}
99
91
return null ;
100
92
}
@@ -111,9 +103,9 @@ public final WebSocket onCompleted() throws Exception {
111
103
@ Override
112
104
public final void onSuccess (WebSocket webSocket ) {
113
105
this .webSocket = webSocket ;
114
- for (WebSocketListener w : l ) {
115
- webSocket .addWebSocketListener (w );
116
- w .onOpen (webSocket );
106
+ for (WebSocketListener listener : listeners ) {
107
+ webSocket .addWebSocketListener (listener );
108
+ listener .onOpen (webSocket );
117
109
}
118
110
ok .set (true );
119
111
}
@@ -123,11 +115,11 @@ public final void onSuccess(WebSocket webSocket) {
123
115
*/
124
116
@ Override
125
117
public final void onFailure (Throwable t ) {
126
- for (WebSocketListener w : l ) {
118
+ for (WebSocketListener listener : listeners ) {
127
119
if (!ok .get () && webSocket != null ) {
128
- webSocket .addWebSocketListener (w );
120
+ webSocket .addWebSocketListener (listener );
129
121
}
130
- w .onError (t );
122
+ listener .onError (t );
131
123
}
132
124
}
133
125
@@ -136,13 +128,13 @@ public final void onClose(WebSocket webSocket, int status, String reasonPhrase)
136
128
if (this .webSocket == null )
137
129
this .webSocket = webSocket ;
138
130
139
- for (WebSocketListener w : l ) {
131
+ for (WebSocketListener listener : listeners ) {
140
132
if (webSocket != null ) {
141
- webSocket .addWebSocketListener (w );
133
+ webSocket .addWebSocketListener (listener );
142
134
}
143
- w .onClose (webSocket );
144
- if (w instanceof WebSocketCloseCodeReasonListener ) {
145
- WebSocketCloseCodeReasonListener .class .cast (w ).onClose (webSocket , status , reasonPhrase );
135
+ listener .onClose (webSocket );
136
+ if (listener instanceof WebSocketCloseCodeReasonListener ) {
137
+ WebSocketCloseCodeReasonListener .class .cast (listener ).onClose (webSocket , status , reasonPhrase );
146
138
}
147
139
}
148
140
}
@@ -151,10 +143,8 @@ public final void onClose(WebSocket webSocket, int status, String reasonPhrase)
151
143
* Build a {@link WebSocketUpgradeHandler}
152
144
*/
153
145
public final static class Builder {
154
- private ConcurrentLinkedQueue <WebSocketListener > l = new ConcurrentLinkedQueue <WebSocketListener >();
155
- private String protocol = "" ;
156
- private long maxByteSize = 8192 ;
157
- private long maxTextSize = 8192 ;
146
+
147
+ private ConcurrentLinkedQueue <WebSocketListener > listeners = new ConcurrentLinkedQueue <WebSocketListener >();
158
148
159
149
/**
160
150
* Add a {@link WebSocketListener} that will be added to the {@link WebSocket}
@@ -163,7 +153,7 @@ public final static class Builder {
163
153
* @return this
164
154
*/
165
155
public Builder addWebSocketListener (WebSocketListener listener ) {
166
- l .add (listener );
156
+ listeners .add (listener );
167
157
return this ;
168
158
}
169
159
@@ -174,40 +164,7 @@ public Builder addWebSocketListener(WebSocketListener listener) {
174
164
* @return this
175
165
*/
176
166
public Builder removeWebSocketListener (WebSocketListener listener ) {
177
- l .remove (listener );
178
- return this ;
179
- }
180
-
181
- /**
182
- * Set the WebSocket protocol.
183
- *
184
- * @param protocol the WebSocket protocol.
185
- * @return this
186
- */
187
- public Builder setProtocol (String protocol ) {
188
- this .protocol = protocol ;
189
- return this ;
190
- }
191
-
192
- /**
193
- * Set the max size of the WebSocket byte message that will be sent.
194
- *
195
- * @param maxByteSize max size of the WebSocket byte message
196
- * @return this
197
- */
198
- public Builder setMaxByteSize (long maxByteSize ) {
199
- this .maxByteSize = maxByteSize ;
200
- return this ;
201
- }
202
-
203
- /**
204
- * Set the max size of the WebSocket text message that will be sent.
205
- *
206
- * @param maxTextSize max size of the WebSocket byte message
207
- * @return this
208
- */
209
- public Builder setMaxTextSize (long maxTextSize ) {
210
- this .maxTextSize = maxTextSize ;
167
+ listeners .remove (listener );
211
168
return this ;
212
169
}
213
170
@@ -217,7 +174,7 @@ public Builder setMaxTextSize(long maxTextSize) {
217
174
* @return a {@link WebSocketUpgradeHandler}
218
175
*/
219
176
public WebSocketUpgradeHandler build () {
220
- return new WebSocketUpgradeHandler (this );
177
+ return new WebSocketUpgradeHandler (listeners );
221
178
}
222
179
}
223
180
}
0 commit comments