Before proceeding, all dependencies need to be installed. You can find instructions in the C Examples Readme.
This example illustrates a robust publisher-subscriber communication pattern
between two separate processes. The publisher sends two messages every second,
each containing [TransmissionData
]. On the receiving end, the subscriber
checks for new data every second.
The subscriber is printing the sample on the console whenever new data arrives.
First you have to build the C examples:
cmake -S . -B target/ffi/build -DBUILD_EXAMPLES=ON
cmake --build target/ffi/build
To observe this dynamic communication in action, open two separate terminals and execute the following commands:
./target/ffi/build/examples/c/publish_subscribe/example_c_publish_subscribe_subscriber
./target/ffi/build/examples/c/publish_subscribe/example_c_publish_subscribe_publisher
Feel free to run multiple instances of publisher or subscriber processes simultaneously to explore how iceoryx2 handles publisher-subscriber communication efficiently.
You may hit the maximum supported number of ports when too many publisher or subscriber processes run. Take a look at the iceoryx2 config to set the limits globally or at the API of the Service builder to set them for a single service.