IoTKETI / Mobius

oneM2M IoT Server Platform
http://developers.iotocean.org/archives/module/mobius
BSD 3-Clause "New" or "Revised" License
133 stars 87 forks source link

MQTT protocol binding is wrong #25

Open hsebs opened 4 years ago

hsebs commented 4 years ago

https://github.com/IoTKETI/Mobius/blob/24d1bf7f5fde807edc1bac2c48d9c488d7d84d99/mobius/mn.js#L541 jsonObj of retrieve_CSEBase_mqtt is wrong. according to TR-0051, csr has srv and it does not have srt. But it deletes jsonObj.csr.srv instead of jsonObj.csr.srt.

It causes bad filed error when Mobius (or nCube-Rosemary) works as mn {"m2m:dbg":"ER_BAD_FIELD_ERROR: Unknown column 'srt' in 'field list'"}

hsebs commented 4 years ago

https://github.com/IoTKETI/Mobius/blob/b398dec2e3028627c67c3ed77a1f64da0922fc90/pxy_mqtt.js#L658

https://github.com/IoTKETI/Mobius/blob/b398dec2e3028627c67c3ed77a1f64da0922fc90/pxy_mqtt.js#L714

https://github.com/IoTKETI/Mobius/blob/b398dec2e3028627c67c3ed77a1f64da0922fc90/pxy_mqtt.js#L829

reg_req_topic of mqtt_app is wrong. according to TS-0010, leading '/'s of originator have to be omitted when it does not Credential-ID. But it replaces leading '/'s with ':' even if originator is not Credential-ID. (it uses CSE-ID) Receiver can't be Credential-ID, but it replaces leading '/'s with ':' of receiver.

hsebs commented 4 years ago

https://github.com/IoTKETI/Mobius/blob/b398dec2e3028627c67c3ed77a1f64da0922fc90/pxy_mqtt.js#L157

https://github.com/IoTKETI/Mobius/blob/b398dec2e3028627c67c3ed77a1f64da0922fc90/pxy_mqtt.js#L164

https://github.com/IoTKETI/Mobius/blob/b398dec2e3028627c67c3ed77a1f64da0922fc90/pxy_mqtt.js#L174

topics of subscribe are wrong. according to TS-0010, non-leading '/'s of originator and receiver have to be replaced with ':'. But it omits non-leading '/'s of originator and receiver.