Skip to content

Commit

Permalink
Merge pull request #57 from L1nkWave/feature/LWB-38_mib-property
Browse files Browse the repository at this point in the history
feature/LWB-38_mib-property
  • Loading branch information
borjom1 authored Apr 23, 2024
2 parents d1ebddb + 868d265 commit 212e4cd
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 21 deletions.
2 changes: 1 addition & 1 deletion backend/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ services:
SPRING_APPLICATION_JSON: '{
"server.port": 9091,
"server.id": "E2",
"server.instances.value": "E1",
"server.instances.list": "E1",
"spring.data.redis.host": "host.docker.internal",
"spring.data.redis.port": 16379,
"eureka.client.service-url.defaultZone": "$DISCOVERY_URL"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@
@RequiredArgsConstructor
public class ClientConnectionHandler implements AfterConnectionEstablished, AfterConnectionClosed {

@Value("${server.instances.value}")
private String instances;
@Value("${server.instances.list}")
private String[] instances;

@Value("${server.instances.separator}")
private String separator;
@Value("${server.instances.enabled}")
protected boolean isMultiInstanceBroadcastEnabled;

private final ChatServiceClient chatClient;
private final UserServiceClient userClient;
Expand Down Expand Up @@ -140,10 +140,11 @@ private void notifyChatMembersWith(Action action, @NonNull Set<String> chats, Lo
jsonMessage = objectMapper.writeValueAsString(content);
}

for (String instanceId : instances.split(separator)) {
chatRepository.shareWithConsumer(instanceId, jsonMessage);
if (isMultiInstanceBroadcastEnabled) {
for (String instanceId : instances) {
chatRepository.shareWithConsumer(instanceId, jsonMessage);
}
}

}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
@RequiredArgsConstructor
public class SimpleBroadcastManager implements BroadcastManager {

@Value("${server.instances.value}")
protected String instances;
@Value("${server.instances.list}")
protected String[] instances;

@Value("${server.instances.separator}")
protected String separator;
@Value("${server.instances.enabled}")
protected boolean isMultiInstanceBroadcastEnabled;

protected final WebSocketMessageBroadcast messageBroadcast;
protected final ChatRepository<Long, String> chatRepository;
Expand Down Expand Up @@ -70,10 +70,12 @@ protected void broadcast(Broadcast broadcast, Set<String> sessionsIds, String se
isSharedCompletely = false;
}

if (!isSharedCompletely && broadcast.multiInstances()) {
if (isMultiInstanceBroadcastEnabled &&
!isSharedCompletely &&
broadcast.multiInstances()) {
log.debug("-> process(): multi-instance broadcast is required");

for (String instanceId : instances.split(separator)) {
for (String instanceId : instances) {
chatRepository.shareWithConsumer(instanceId, serializedMessage);
}
}
Expand Down
4 changes: 2 additions & 2 deletions backend/ws-server/src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ server:
port: 9090
id: 'E1'
instances:
value: 'E2'
separator: ','
list: 'E2'
enabled: true

spring:
application:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ void setUp() {
final Field instances = findField(SimpleBroadcastManager.class, "instances");
if (instances != null) {
makeAccessible(instances);
setField(instances, broadcastManager, "E2");
setField(instances, broadcastManager, new String[]{"E2"});
}

final Field separator = findField(SimpleBroadcastManager.class, "separator");
if (separator != null) {
makeAccessible(separator);
setField(separator, broadcastManager, ",");
final Field isMibEnabled = findField(SimpleBroadcastManager.class, "isMultiInstanceBroadcastEnabled");
if (isMibEnabled != null) {
makeAccessible(isMibEnabled);
setField(isMibEnabled, broadcastManager, true);
}
}

Expand Down

0 comments on commit 212e4cd

Please sign in to comment.