Oh, btw. if you don't mind - feel free to share (if you can) what you are
building :) We are always interested in that ;-)
-Matthias
On Mon, Apr 7, 2014 at 3:55 PM, Matthias Wessendorf <matzew(a)apache.org>wrote:
On Mon, Apr 7, 2014 at 3:50 PM, Michi Oshima <michi.oshima(a)gmail.com>wrote:
> Hi. Thank you all. I successfully got multiple registration working
> last week.
>
>
> 1. Sebastien, what is the purpose of using the local storage to store
> the mapping between channel ID and category? I'm at this time keeping the
> map in memory.
> 2. Matthias, using the current time makes sense. I'll do that. Why
> didn't I think about that?
>
> eventually, the Mozilla guys figured that out as well.
The newest/latest spec (of SimplePush) contains that now: no body; server
will use the current timestamp;
Note: our SPS server is being updated to do that too - we will do the same
for UPS and our java client
>
> Thank you all again for your attention and advice thus far.
>
> Michi
>
>
> On Fri, Apr 4, 2014 at 5:13 AM, Matthias Wessendorf <matzew(a)apache.org>wrote:
>
>> 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(a)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(a)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(a)gmail.com>wrote:
>>>>
>>>>> Looks at this more advanced example here
>>>>>
https://github.com/aerogear/aerogear-aerodoc-web/blob/master/scripts/serv...
>>>>>
>>>>>
>>>>> 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(a)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-qu...;,
>>>>>> 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(a)gmail.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Apr 3, 2014 at 4:41 PM, Michi Oshima <
>>>>>>> michi.oshima(a)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-Registr...
>>>>>>>>
>>>>>>>> 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(a)redhat.com> wrote:
>>>>>>>>
>>>>>>>>> On Apr 2, 2014, at 11:38 AM, Michi Oshima
<michi.oshima(a)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(a)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(a)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(a)lists.jboss.org
>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> aerogear-dev mailing list
>>>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> aerogear-dev mailing list
>>>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> aerogear-dev mailing list
>>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> aerogear-dev mailing list
>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev(a)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
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev(a)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