machinekit / machinekit-hal

Universal framework for machine control based on Hardware Abstraction Layer principle
https://www.machinekit.io
Other
109 stars 62 forks source link

Machinetalk Router implementations not ready for broker #79

Open ArcEye opened 6 years ago

ArcEye commented 6 years ago

Issue by machinekoder Mon Jan 11 16:33:52 2016 Originally opened as https://github.com/machinekit/machinekit/issues/859


The router sockets used in Machinetalk service in Machinekit are not ready to be used with a broker in between service and client. As can be seen here http://zeromq.org/tutorials:dealer-and-router a chain of dealer-router sockets adds multiple addresses to the messages received by the service. However, currently several services expect only a single address. Multiple identities would cause the services to fail.

See:

To fix this problem either null frame has to be inserted (like REQ-REP does) or only the last frame of the multipart message should be interpreted. The second approach would be backwards compatible with current clients.

ArcEye commented 6 years ago

Comment by machinekoder Mon Jan 11 16:36:50 2016


We currently don't use multipart messages in Machinetalk and we don't need to because we use Protobuf for serialization. In case that stays the same in the future (we should make it part of the Machinetalk specification) approach two should be easiest to implement.

ArcEye commented 6 years ago

Comment by machinekoder Thu Jan 14 17:09:41 2016


router_dealer_broker