/multicast-wrapper

A Multicast wrapper for using multicast in a clustered environment

Primary LanguageJava

multicastwrapper

A Multicast wrapper for using multicast in a clustered environment

final String MULTICAST_IP = "224.0.0.1";
final int MULTICAST_PORT = 14725;
final byte[] messageToSend = new byte[]{0x41, 0x42, 0x43};

// GIVEN
boolean ipMulticastLoop = true;
List<byte[]> container = new ArrayList<>();
NetworkInterface networkInterface = MulticastBase.listNetworkInterfaces()
    .stream()
    .findAny()
    .orElseThrow(() -> new RuntimeException("networkInterface is empty!"));
try (MulticastBase multicastBase = new MulticastBase(
        networkInterface,
        MULTICAST_IP,
        MULTICAST_PORT,
        container::add,
        ipMulticastLoop)) {
    // WHEN
    multicastBase.launchConsumer();
    multicastBase.sendMessage(messageToSend);

    // THEN
    await().atMost(5, SECONDS).until(() -> !container.isEmpty());
    assertThat(container).hasSize(1);
    byte[] message = container.get(0);
    assertThat(message).isNotNull();
    assertThat(message.length).isEqualTo(3);
    assertThat(message).isEqualTo(messageToSend);
}