Open ArcEye opened 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.
Comment by machinekoder Thu Jan 14 17:09:41 2016
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.