Performance problem RTI Connector (Node.js) event-based reading

2 posts / 0 new
Last post
Last seen: 5 years 2 months ago
Joined: 02/26/2019
Posts: 1
Performance problem RTI Connector (Node.js) event-based reading


I am using DDS (Connext) to send an image stream (512 x 512 x 1 byte, @ 10-20 Hz) between C++ processes and I would like to send the image stream also to a browser based UI on the same PC. As websockets are not supported, I am using  RTI Connector for Node.js with the event-based reading. Event-based reading is required, as we want do display the image as soon as it is available.

However, the connector doesn't notify the 'on_data_available' frequently enough to keep up with the image stream. I observe 2 problems:

  • A lot of images are dropped (only 3-5 images / sec. received in Node.js)
  • The 'on_data_available' isn't called anymore after receiving a number of images

The qos_profile is the same for the C++ and Node.js process. The C++ participants can keep up with the image stream.

I have 2 questions:

  • Is this performance difference for the RTI connector for Node.js as expected, and what can I do to improve it?
  • Are there other / better alternatives to connect the browser based user interface to a DDS C++ process?



gianpiero's picture
Last seen: 6 months 1 week ago
Joined: 06/02/2010
Posts: 177

Hello Pascal,

Thank you for writign on the forum. 

The connector is using DynamicData instead of copiled types. Are you using compiled types in C++? DynamicData today is significantly slower than compiled type. The good news is that we addressed this issue and in the next release you should see lots of improvements when it comes to dynamic data. 

That being said, how are you accessing the images? Are you using the getJSON API? The API to access large arrays or sequences are not ideal right now. 

In C++ you can use the get and set the data in one go, while in connector you have to go field by field. We have built some work-around for a customer but is not public yet. You can email me directly gianpiero {at} and i can try to help you out with that workaround.