node-wot
node-wot copied to clipboard
No response from MQTT Binding readProperty method
I apologize for the inconvenience, but I need your confirmation on the following issues.
Problem
There is no response when I call readProperty on MQTT Binding. A sample program is placed below. https://github.com/hidetak/test-node-wot/tree/main/no-response-mqtt-read-property
Also, if observeProperty is executed and then writeProperty is executed, the written value can be retrieved, but sometimes it is retrieved twice.
environment
- Mac(Apple siicon)
- OS: Sonoma 14.1
- nodejs: v18 or v20
- node-wot: 0.8.12
Steps to reproduce
get the following code
https://github.com/hidetak/test-node-wot/tree/main/no-response-mqtt-read-property
- $ npm install
- $ npm run start:server
- open new terminal
- $ npm run start:client
When executed, the following string is output.
write property 100
observed count value is: 100
Expectations are as follows.
count value is: 0
write property 100
observed count value is: 100
Sometimes observed count value is: 100 is output twice
write property 100
observed count value is: 100
observed count value is: 100
I apologize if there is a problem with my usage.
@egekorkan can you take a look?
There is no good solution here at the moment. The following scenarios are possible:
- Consumer subscribes and by chance the Thing publishes a new value
- Consumer subscribes and gets a value that is published some time ago with retain. The issue is how to give the timestamp of the published payload to the application level. The message can be very old
- The request-response mechanism is implemented in all sides where the Consumer forces the Thing to publish to a topic given by the Consumer.
There are issues in the specification level to solve this.