[aerogear-dev] Possible to send anything other than version number to simple push?

Matthias Wessendorf matzew at apache.org
Fri Apr 4 05:13:46 EDT 2014


Hello Michi,

IMO the version number string is a bit odd for most backend applications.
:-) If you don't want to maintain a "version per channel", I'd just do the
current timestamp (e.g. Date.now() in JS)

-M


On Fri, Apr 4, 2014 at 11:04 AM, Sebastien Blanc <scm.blanc at gmail.com>wrote:

> Hey Again !
>
> To make it even easier I've deployed a "multi-channel" version of the
> quickstart here  : http://mutlichannels-sblanc.rhcloud.com/
> Then you can fire the CURLs for each category to see how it can handle
> different channels :
>
> curl -3 -u "a0f6a30e-0cda-49a4-9901-bcfdc30e5c7a:b986c86e-4092-4728-a1ed-7ac68f6d0f7a" -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{
>        "categories" :["mail"],
>        "simple-push": "version=1111"
>
>      }' https://hackergartenups-sblanc.rhcloud.com/rest/sender
>
>
>
> curl -3 -u "a0f6a30e-0cda-49a4-9901-bcfdc30e5c7a:b986c86e-4092-4728-a1ed-7ac68f6d0f7a" -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{
>
>        "categories" :["news"],
>        "simple-push": "version=1112"
>      }' https://hackergartenups-sblanc.rhcloud.com/rest/sender
>
>
> If you fire these multiple time don't forget to change the version value !
>
>
>
>
>
> On Fri, Apr 4, 2014 at 10:02 AM, Sebastien Blanc <scm.blanc at gmail.com>wrote:
>
>> Hey Michi,
>> I realized that the code I pointed you to could be a bit confusing and
>> also contains a small bug.
>>
>> I wrote this gist based on the quickstart example. Basically we register
>> to 2 channels : mail and news, we store the channelID and map that with a
>> String containing the service name, then in the onNotification we check
>> which service to call :
>>
>> https://gist.github.com/sebastienblanc/9970129
>>
>> Hope this example will make more sense !
>>
>> Seb
>>
>>
>>
>>
>> On Thu, Apr 3, 2014 at 8:53 PM, Sebastien Blanc <scm.blanc at gmail.com>wrote:
>>
>>> Looks at this more advanced example here
>>> https://github.com/aerogear/aerogear-aerodoc-web/blob/master/scripts/services/notifierService.js
>>>
>>>
>>> You will see that we register 2 times and we get 2 different endpoints.
>>> Then you have to keep somewhere a link between your endpoint and let's say
>>> the service you want to associate to , like using the localStorage :
>>> localStorage.setItem(theEndpoint, "scoreService");
>>>
>>> Then when you receive a message, besides the version (which is btw not
>>> mandatory to be used) you also receive the channelId, then you can choose
>>> which service to call :
>>>
>>>
>>>  navigator.setMessageHandler("push", function(message) {
>>>
>>>
>>> 		var myService = localStorage.get(message.channelID);
>>> 		//now based on this you can call your specific log
>>> 	});
>>>
>>>
>>>
>>> I Hope this will help you.
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Apr 3, 2014 at 8:03 PM, Michi Oshima <michi.oshima at gmail.com>wrote:
>>>
>>>> Thank you, Sebastien.  I'll try multiple registration.  Although, I'm a
>>>> bit confused.  Because:
>>>>
>>>>
>>>>    1. As far as I can see from the quick start example<https://github.com/aerogear/aerogear-simplepush-unifiedpush-quickstart>,
>>>>    per SPS Client, there'll be one registration with the SimplePush server.
>>>>     That means I only get one endpoint.
>>>>    2. So I'd use the same endpoint to register multiple times with the
>>>>    unified push server using different category each time.
>>>>    3. When the SPS client receives a version number, how can it
>>>>    associate a given version number to a particular category?  (I've not seen
>>>>    categories reaching the client.)
>>>>
>>>>
>>>> Am I wrong somewhere above?
>>>>
>>>>
>>>>
>>>> On Thu, Apr 3, 2014 at 10:53 AM, Sebastien Blanc <scm.blanc at gmail.com>wrote:
>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Apr 3, 2014 at 4:41 PM, Michi Oshima <michi.oshima at gmail.com>wrote:
>>>>>
>>>>>> Hi Lucas,
>>>>>>
>>>>>> Following might do what I want (sending a "door bell" message in one
>>>>>> shot to all variants)?  Send a unified message like the following one:
>>>>>>
>>>>>>
>>>>>>    - '{ "message": { "version":"123" }, "simple-push": "version=123"
>>>>>>    }'
>>>>>>
>>>>>>
>>>>>> One slight deviation is that mobile variants like iOS and Android
>>>>>> will get the message regardless of whether the the version number is "old"
>>>>>> or not.  Is this correct?
>>>>>>
>>>>>
>>>>> Yes iOS/Android ignore the version since that is really something tied
>>>>> to Simple Push
>>>>>
>>>>>>
>>>>>> So I revisited the SimplePush spec<https://wiki.mozilla.org/WebAPI/SimplePush>,
>>>>>> and I noticed it describes support for subscription to multiple channels.
>>>>>>
>>>>>> Aerogear doesn't allow multiple channels per installation, correct?
>>>>>>  I dug up an old post from Matthias:
>>>>>>
>>>>>>
>>>>>>    -
>>>>>>    http://aerogear-dev.1069024.n5.nabble.com/aerogear-dev-SimplePush-Registration-of-quot-Mobile-Variant-instance-quot-w-Unified-Push-Server-tt2805.html#none
>>>>>>
>>>>>> Well yes,  but multiple installations can belong to the same SPS
>>>>> Client. You can register multiple time, differentiate them by passing them
>>>>> a category for instance.
>>>>>
>>>>>
>>>>>>
>>>>>>    -
>>>>>>
>>>>>>
>>>>>> If an installation can subscribe to multiple channels, then it would
>>>>>> allow me to get what I originally asked about:
>>>>>>
>>>>>> Me: 'My client application (javascript on browser) holds multiple
>>>>>> types of data.  It would be nice if I can send a notification saying
>>>>>> "there's an update for this data type", rather than just "there's an
>>>>>> update".  Or, in general it'd be nice if I can send more information than
>>>>>> just a monotonically increasing number. '
>>>>>>
>>>>>>
>>>>>> What do you think?
>>>>>>
>>>>>
>>>>> That would be quite a breaking change and we need to discuss that, in
>>>>> the same time, as said before, you can still register a single client to
>>>>> multiple channels (and es you will have multiple installations but that do
>>>>> not really matter)
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Apr 2, 2014 at 11:44 AM, Lucas Holmquist <lholmqui at redhat.com
>>>>>> > wrote:
>>>>>>
>>>>>>> On Apr 2, 2014, at 11:38 AM, Michi Oshima <michi.oshima at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Thanks, Lucas.  I read the spec yesterday and ended up looking at
>>>>>>> disturbing auctions for 30 minutes.  I'll read it again.
>>>>>>>
>>>>>>> Another question, is there a way to send a "door bell" message *in
>>>>>>> one shot* to all iOS, Android, and SimplePush variants?
>>>>>>>
>>>>>>>
>>>>>>> well, iOS and Android notifications aren't really doorbells,  but
>>>>>>> you can send a "message" to all clients that are registered in your Push
>>>>>>> Server.
>>>>>>>
>>>>>>>  we have a Java client
>>>>>>> http://aerogear.org/docs/guides/GetStartedwithJavaSender/
>>>>>>>
>>>>>>> and a node.js client  for this
>>>>>>> https://www.npmjs.org/package/aerogear-sender-client
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> (m:)
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Apr 2, 2014 at 11:04 AM, Lucas Holmquist <
>>>>>>> lholmqui at redhat.com> wrote:
>>>>>>>
>>>>>>>> SimplePush works only as a "door bell" to tell your app,  hey,  you
>>>>>>>> should go look on your server.
>>>>>>>>
>>>>>>>> this is the spec  https://wiki.mozilla.org/WebAPI/SimplePush
>>>>>>>>
>>>>>>>>
>>>>>>>> On Apr 2, 2014, at 11:02 AM, Michi Oshima <michi.oshima at gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Yesterday I managed to send my first message to a browser.  Thanks
>>>>>>>> for all your help.
>>>>>>>>
>>>>>>>> I've tried sending a few different types of messages, and it so far
>>>>>>>> appears to me the only thing I can send to a simple push client is a
>>>>>>>> version number.  Can a simple push client receive anything else other than
>>>>>>>> version numbers?  If so, what does the sender need to do, and what does the
>>>>>>>> client need to do?  (If there is a good example somewhere online I can work
>>>>>>>> from that also.)
>>>>>>>>
>>>>>>>> My client application (javascript on browser) holds multiple types
>>>>>>>> of data.  It would be nice if I can send a notification saying "there's an
>>>>>>>> update for this data type", rather than just "there's an update".  Or, in
>>>>>>>> general it'd be nice if I can send more information than just a
>>>>>>>> monotonically increasing number.
>>>>>>>>
>>>>>>>> Here's my setup:
>>>>>>>>
>>>>>>>>
>>>>>>>>    - AeroGear Push Server 0.10.0 hosted on OpenShift.
>>>>>>>>    - Sender is a JBoss app using
>>>>>>>>    org.jboss.aerogear.unifiedpush.JavaSender
>>>>>>>>    (unifiedpush-java-client-0.5.0.jar).
>>>>>>>>    - Client is a web browser using aerogear.js 1.4.0.
>>>>>>>>
>>>>>>>>
>>>>>>>> I read this documentation<http://aerogear.org/docs/specs/aerogear-push-messages/>,
>>>>>>>> but my wishful thinking refused to interpret it as saying: SimplePush
>>>>>>>> variants use the "extra simple-push object" only.
>>>>>>>>
>>>>>>>> Thank you,
>>>>>>>>
>>>>>>>> Michi Oshima
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> aerogear-dev mailing list
>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> aerogear-dev mailing list
>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> aerogear-dev mailing list
>>>>>> aerogear-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> aerogear-dev mailing list
>>>>> aerogear-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> aerogear-dev mailing list
>>>> aerogear-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>
>>>
>>>
>>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>



-- 
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20140404/d832db2a/attachment-0001.html 


More information about the aerogear-dev mailing list