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