hello guys, i am glad to know backendless and be one of you.
i am going to create an iot device and want backendless to handle server side of my product.
i want to use pub/sub messaging for sending commands to devices all around the world.
it seems that if an app publish message and device set it self as subscriber all thing done well.
but as you know devices connect to home wifi and home wifi ip is either not consistent and valid as time go along.
i have two question the first is, is this invalidity and ip change a problem really or server handle it?
the second i think subscriber should periodically subscribe it self to be visible for the server is this correct?
as mentioned in
" Backendless server handles message publishing as an autonomous task. As a result, the status of the message publishing operation is not available right away. To retrieve publishing status, the client application must make a separate API call documented below: "
but in the sample mentioned in
sample there is no get call in the code and subscriber received message without any more call.?
so it confuse me about this things.
You do not need to bother regarding wi-fi ip. it won’t affect subscription in any way. Regarding your second question - it depends on how are you establishing a subscription. If using async subscription methods in Android or iOS SDK - subscription will be active until subscription responder object will be ‘alive’. So on app closing/termination resubscribing is required.
If you are establishing a subscription via REST - resubscribing will be required more frequently as it has it’s expiration. Subscription (in any case) will be canceled if it gets idle for more than 10 minutes. In case with Android, iOS - lost internet connection or else; REST - no message retrieval API calls for more than 10 minutes.
So keep this scenario in mind.
Separate API call is required only for REST. Another link you are referencing contains an example for Java, Android where subscription responder object is responsible for message retrieval.
Thanks Anthon. But will I charge for each subscription request in Rest? Because in iot device we are developing in c on AVR and a lot of subscription will be idle and without message.
Our device should stand for receiving commands.
Number of subscriptions is unlimited. But keep in mind that we limit the number of API requests/minute and number of pub/sub messages. Detailed limits per component you may find in Manage > Billing > Explain charges button of your current plan.
Thanks for answers and help.
Limit on pub/sub messages mean that if one client publish and one client get message we consume 1 pub/sub message. But if one client publish and 10 client get message 10 message is consumed. But if one client subscribe 10 times and no message transfer nothing is consumed Am I correct?
Yes, your assumptions are correct. Only received messages are billed. The number of subscriptions and the number of published messages do not affect the pub/sub message billing counter directly.