Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [paho-dev] Mqtt Paho - Trying to publish while broker is unreachable

Since there is a lot of interest in this and people are eager to start discussing ways to do it, why don’t we set up an OASIS TC / eclipse group / whatever for bridging in general, to be released in the future as a supplementary certification? A control mechanism could be an MQTT based / namespace based / other ?

Alex

On 23 Ιαν 2014, at 2:52 μ.μ., Roger Light <roger@xxxxxxxxxx> wrote:

> Hi Ian,
> 
> Dynamic bridges in mosquitto - yes definitely. I've not done it before
> because I was considering what control mechanism to use.
> 
> Cheers,
> 
> Roger
> 
> On Thu, Jan 23, 2014 at 10:51 AM, Ian Craggs
> <icraggs@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
>> Paul,
>> 
>> my RSMB broker (for which the code is in the Mosquitto project) has dynamic
>> bridges (and has had for several years).
>> 
>> Your suggestion is interesting.  If we published to a broker topic (possibly
>> prefixed by a $ as alternative behaviour is allowed in the 3.1.1 spec), then
>> a normal MQTT application could listen for any such message, and set up a
>> dynamic bridge to the remote system.  You can do this with RSMB today
>> (except that RSMB does not persist messages to disk so messages are lost
>> over a restart).
>> 
>> Dynamic bridges is a feature I was thinking of asking if Roger wanted to add
>> to Mosquitto.
>> 
>> This is an option I had previously thought of rather than implementing
>> offline buffering in the clients.  But given that very simple offline
>> buffering should be easy to add, both approaches could have their place.
>> Do you agree?
>> 
>> Ian
>> 
>> 
>> On 22/01/14 12:50, Paul Fremantle wrote:
>> 
>> Ian
>> 
>> That brings up an interesting question: If I do the model you suggest, then
>> the local mosquitto broker must have a hard-coded definition of the remote
>> broker. That is ok in many cases, but in general it might be nice to have a
>> way of specifying the address of the broker in the topic name:
>> 
>> e.g. instead of just topicA/topicB, put mqtt://broker.freo.me/topicA/topicB
>> at which point my local broker will know this needs to go to the broker
>> broker.freo.me
>> 
>> This then becomes a bit like SMTP, where I config my local mail client to
>> talk to my well-known, trusted, available SMTP server, and it then does the
>> onward forwarding of my mail to the correct SMTP server for the recipient.
>> 
>> Paul
>> 
>> 
>> On 22 January 2014 09:32, Ian Craggs <icraggs@xxxxxxxxxxxxxxxxxxxxxxx>
>> wrote:
>>> 
>>> Hi Pablo,
>>> 
>>> the short answer is that you have to handle the situation by yourself.
>>> Having some buffering capability in the client is something that you are not
>>> alone in asking for.  I'll make sure to add that to our requirements.
>>> 
>>> One way you can address this, is, as you point out, with a local Mosquitto
>>> broker and a bridge.
>>> 
>>> Ian
>>> 
>>> 
>>> On 21/01/14 21:31, Pablo Lopez wrote:
>>> 
>>> Hi all paho-dev members.
>>> 
>>> This is my first (baby) step in the "Internet of things" world, and I'm
>>> having a hard time with it :)
>>> 
>>> Let me introduce myself : I'm Pablo, a french developer who is trying to
>>> connect raspberry pi sensors to a central server to process sensors values.
>>> 
>>> But I'm having a hard time handling WiFi instability in my environment.
>>> 
>>> So I'm copying here a message I already put in the open on StackOverflow
>>> 
>>> 
>>> http://stackoverflow.com/questions/21269331/mqtt-paho-trying-to-publish-while-broker-is-unreachable
>>> 
>>> Thank you for any help you could provide.
>>> 
>>> I'm going back to the Java Paho source code to try answering my question
>>> by myself ;)
>>> 
>>> 
>>> I'm begininng to use Mqtt and I have a hard time with handling an
>>> unreliable network. I'm using a Paho Java Client (in groovy) to publish
>>> messages to a distant Mosquitto Broker.
>>> 
>>> Is there a way, when the broker is unreachable, to have the Paho client
>>> persist the message and automatically re-connect to the broker and publish
>>> the locally stored messages ? Do I have to handle everything myself, using
>>> for example a local broker ?
>>> 
>>> Here is my client building code
>>> 
>>>    String pe
>>> rsistence
>>> Dir = config['persistence-dir'] ?: System.getProperty('java.io.tmpdir')
>>>    def persistence = new MqttDefaultFilePersistence(persistenceDir)
>>>    client = new MqttClient(uri, clientId, persistence)
>>>    client.setCallback(this)
>>>    options = new MqttConnectOptions()
>>>    if (config.password) {
>>>        options.setPassword(config.password as
>>> char[])
>>>        options.setUserName(config.user)
>>>    }
>>>    options.setCleanSession(false)
>>>    client.connect(options)
>>> 
>>> And my publish code
>>> 
>>>  def message = new MqttMessage(Json.encode(outgoingMessage).getBytes())
>>>    try {
>>>    client?.connect(options)
>>>    def topic = client.getTopic('processMsg')
>>>    message.setQos(1)
>>>    def token = topic.publish(message)
>>>    if (client) {
>>>        client.disconnect()
>>>    }
>>> 
>>> Thanks
>>> 
>>> 
>>> 
>>> --
>>> Pablo Lopez
>>> email & gtalk : plopez@xxxxxxxx / mob: +33-6.07.56.04.64
>>> Xebia, Software Development Done Right.
>>> http://blog.xebia.fr
>>> 
>>> 
>>> _______________________________________________
>>> paho-dev mailing list
>>> paho-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/paho-dev
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> paho-dev mailing list
>>> paho-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/paho-dev
>>> 
>> 
>> 
>> 
>> --
>> Paul Fremantle
>> Part-time PhD student - School of Computing
>> email: paul.fremantle@xxxxxxxxxx, paul@xxxxxxxxxxxxx
>> twitter: pzfreo / skype: paulfremantle / blog: http://pzf.fremantle.org
>> CTO and Co-Founder, WSO2
>> OASIS WS-RX TC Co-chair, Apache Member
>> 07740 199 729
>> 
>> 
>> _______________________________________________
>> paho-dev mailing list
>> paho-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/paho-dev
>> 
>> 
>> 
>> _______________________________________________
>> paho-dev mailing list
>> paho-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/paho-dev
>> 
> _______________________________________________
> paho-dev mailing list
> paho-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/paho-dev



Back to the top