11package com .giffing .wicket .spring .boot .starter .web .servlet .websocket ;
22
3+ import java .util .Collection ;
4+ import java .util .Objects ;
5+
36import org .apache .wicket .Application ;
47import org .apache .wicket .protocol .ws .WebSocketSettings ;
58import org .apache .wicket .protocol .ws .api .IWebSocketConnection ;
@@ -25,12 +28,18 @@ public void sendToAll(IWebSocketPushMessage event) {
2528 var webSocketSettings = WebSocketSettings .Holder .get (application );
2629 var connectionRegistry = webSocketSettings .getConnectionRegistry ();
2730 var connections = connectionRegistry .getConnections (application );
28- log .trace ("sending event to {} connections" , connections .size ());
29- for (IWebSocketConnection connection : connections ) {
30- connection .sendMessage (event );
31- }
31+ sendMessage (event , connections );
3232 }
3333
34+ private void sendMessage (IWebSocketPushMessage event , Collection <IWebSocketConnection > connections ) {
35+ log .trace ("sending event to {} connections" , connections .size ());
36+ connections .stream ()
37+ .filter (Objects ::nonNull )
38+ .forEach (connection ->
39+ connection .sendMessage (event )
40+ );
41+ }
42+
3443 @ Override
3544 public void sendTo (Object identifier , IWebSocketPushMessage event ) {
3645 if (identifier == null ) {
@@ -41,10 +50,7 @@ public void sendTo(Object identifier, IWebSocketPushMessage event) {
4150 var connectionRegistry = webSocketSettings .getConnectionRegistry ();
4251 wicketSessionResolver .resolve (identifier ).forEach (sessionId -> {
4352 var connections = connectionRegistry .getConnections (application , sessionId );
44- log .trace ("sending event to {} connections" , connections .size ());
45- for (IWebSocketConnection connection : connections ) {
46- connection .sendMessage (event );
47- }
53+ sendMessage (event , connections );
4854 });
4955 }
5056}
0 commit comments