You should check out Jason Smith's library follow
<https://github.com/iriscouch/follow>, which is written in Node.js.

On Sat, Dec 13, 2014 at 9:51 AM, Christoph Berlin <[email protected]>
wrote:
>
>  Well I am familiar with Node and the traditional languages…GO is new for
> me but I accept the challenge :)
>
>   From: Traun Leyden <[email protected]>
> Reply-To: "[email protected]" <
> [email protected]>
> Date: Saturday, December 13, 2014 at 9:50 AM
>
> To: "[email protected]" <[email protected]
> >
> Subject: Re: Apple Push Notification Service with UILocalNotfication +
> Sync Gateway instead
>
>
> No problem.
>
>  Btw, which server side language are you looking to use so that I can try
> to steer future examples towards that?
>
>
> On Sat, Dec 13, 2014 at 9:37 AM, Christoph Berlin <
> [email protected]> wrote:
>>
>>  Traun,
>>
>>  Awesome! As always your input is very much appreciated. I will review
>> as soon as possible and get back to you.
>>
>>  Thanks Christoph
>>
>>   From: Traun Leyden <[email protected]>
>> Reply-To: "[email protected]" <
>> [email protected]>
>> Date: Saturday, December 13, 2014 at 8:43 AM
>> To: "[email protected]" <
>> [email protected]>
>> Subject: Re: Apple Push Notification Service with UILocalNotfication +
>> Sync Gateway instead
>>
>>
>>  Hey Christoph,
>>
>>  I have a complete working example you can look at.  Every time I go to
>> our San Francisco or Mountain View office, I get picked up by an Estimote
>> beacon and get a push notification.
>>
>>  It has the following components:
>>
>>  * OfficeRadar iOS app <https://github.com/tleyden/office-radar>
>> * OfficeRadar App Server
>> <https://github.com/tleyden/officeradar-appserver> (written in Go, runs
>> in the Cloud)
>> * Uniqush Push Notification Gateway <http://uniqush.org/> (3rd party
>> server, runs in the Cloud)
>>
>>  The logic flow is as follows:
>>
>>  * iOS device comes in range of an Estimote beacon
>> * The app receives a callback from Estimote SDK
>> <https://github.com/tleyden/office-radar/blob/master/ios/OfficeRadar/OfficeRadar/RDBeaconManager.m#L185-L193>
>> * The app saves a new GeofenceEvent document
>> <https://github.com/tleyden/office-radar/blob/master/ios/OfficeRadar/OfficeRadar/RDBeaconManager.m#L152>
>> to Couchbase Lite (via a CBLModel)
>> * Couchbase Lite pushes this to Sync Gateway via continuous push
>> replication
>> <https://github.com/tleyden/office-radar/blob/master/ios/OfficeRadar/OfficeRadar/RDAppDelegate.m#L144-L167>
>> * Since the App Server is following the changes feed
>> <https://github.com/tleyden/officeradar-appserver/blob/master/officeradar.go#L129-L174>,
>> it will see the new GeofenceEvent document
>> * Then it sends a notification to Uniqush via HTTP Rest API call
>> <https://github.com/tleyden/officeradar-appserver/blob/master/officeradar.go#L402-L425>
>>
>>  HTH!
>>
>>
>> On Fri, Dec 12, 2014 at 8:10 PM, Christoph Berlin <
>> [email protected]> wrote:
>>>
>>> Hi,
>>>
>>>  I apologize in advance if it looks like I try to hijack this thread -
>>> that is not my intent. However can someone outline how to implement push
>>> notification with the sync gateway? I found the Couchbase Chat app with its
>>> push notification robots but I cannot get it too work at all. In this
>>> project the code is outdated or at least I don't understand it all which
>>> could very well be. Despite the fact that I cannot get it to work I have no
>>> idea what sync-wrangler does and there is no documentation at all.
>>>
>>>  We are very well aware of the push notification requirements such as
>>> registering devices, etc. We have the infrastructure already in place -
>>> what we miss is the ability to "listen" to the database changes and trigger
>>> a push when a push is needed.
>>>
>>>  In this thread people talk about sync-wrangler, forward and other
>>> tools but we would appreciate if someone could outline what needs to be
>>> done or how to the make Chat push node application work...
>>>
>>>  I truly appreciate your help.
>>> Christoph
>>>
>>>
>>> On Thursday, November 13, 2014 2:45:02 PM UTC-8, James Nocentini wrote:
>>>>
>>>>  Great thanks
>>>> Using Sync Gateway 1.0.3
>>>> I will try to go for the option described by Jens in the third comment
>>>> of https://github.com/couchbase/sync_gateway/issues/379
>>>> <https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fcouchbase%2Fsync_gateway%2Fissues%2F379&sa=D&sntz=1&usg=AFQjCNF8tnGAO5-etCCnRBwAhFvtsyt_ww>
>>>> Another option would be to query the view directly to the Couchbase
>>>> Server with https://github.com/couchbase/couchnode ?
>>>>
>>>> I'm still not sure in which use case to use the sync-wrangler approach
>>>> with channels instead of view queries https://github.com/
>>>> couchbaselabs/CouchChat-iOS/blob/push/push-notifications/index.js
>>>>
>>>> On Thursday, 13 November 2014 22:02:23 UTC, Traun Leyden wrote:
>>>>>
>>>>> You can access views via the admin API now, see:
>>>>>
>>>>>  https://github.com/couchbase/sync_gateway/issues/379
>>>>>
>>>>>  The non-admin API is coming soon:
>>>>>
>>>>>  https://github.com/couchbase/sync_gateway/issues/449
>>>>>
>>>>>  Which version of Sync Gateway are you running?
>>>>>
>>>>>
>>>>> On Thu, Nov 13, 2014 at 1:57 PM, James Nocentini <[email protected]
>>>>> > wrote:
>>>>>
>>>>>> I'm trying to set up Apple Push Notifications when some user actions
>>>>>> are triggered on the app. Here's what I have managed to do so far:
>>>>>> - User logs in and accepts to receive push notifications
>>>>>> - New Profile document is saved with device_token as one property
>>>>>> - Then when a push notification is needed, create a Notification
>>>>>> document and save it.
>>>>>>
>>>>>>  Using follow <https://github.com/iriscouch/follow> to get notified
>>>>>> of changes and check if the type of the document is "notification". From
>>>>>> there I need the list of device tokens but I'm struggling to get them.
>>>>>> Tried using cradle <https://github.com/flatiron/cradle> but I can't
>>>>>> get save/query views to work. It seems like the sync gateway REST 
>>>>>> interface
>>>>>> doesn't support views?
>>>>>>
>>>>>>   follow(configuration, function(error, change) {
>>>>>>    if (!error) {
>>>>>>      console.log('got change number ' + change.seq + ': ' + change.id
>>>>>> );
>>>>>>
>>>>>>      if (change.doc.type == "notification") {
>>>>>>
>>>>>>        // missing: query a view on the sync gateway
>>>>>>        // to retrieve all the device tokens
>>>>>>        // to send the notification to
>>>>>>
>>>>>>      }
>>>>>>    }
>>>>>>  });
>>>>>>
>>>>>>  Looking at the push notification robot
>>>>>> <https://github.com/couchbaselabs/CouchChat-iOS/blob/push/push-notifications/index.js>
>>>>>>  to
>>>>>> fetch those device tokens via a channel but I couldn't find the
>>>>>> sync-wrangler node module.
>>>>>> What's the best way to retrieve device tokens in this case?
>>>>>>
>>>>>>  Thanks
>>>>>>
>>>>>>  On Monday, 9 June 2014 16:48:20 UTC+1, Jens Alfke wrote:
>>>>>>>
>>>>>>>
>>>>>>>  On Jun 9, 2014, at 8:26 AM, CouchbaseLover <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>  Ok let's say we expand the way "CouchChat" works and implement
>>>>>>> Apple's Notifications but without the use of talking to the APNS server.
>>>>>>> Instead we check the gateway’s _changes feed and use that instead
>>>>>>> to make a "UILocalNotfication" instead of a "Push Notification" that 
>>>>>>> needs
>>>>>>> to talk to the APNS server.
>>>>>>>
>>>>>>>
>>>>>>>  Oh, I see. This will only work while your app is active/visible.
>>>>>>> The main advantage of push notifications is that they can be delivered 
>>>>>>> even
>>>>>>> when your app isn’t running. Push notifications also don’t require 
>>>>>>> keeping
>>>>>>> an open socket to the server, so they’re a lot better for battery life.
>>>>>>> (They’re triggered from a sideband message over regular GSM, kind of 
>>>>>>> like
>>>>>>> an invisible SMS message, so they don’t require keeping the faster and 
>>>>>>> more
>>>>>>> power-hungry 3G/LTE/4G/WiFi radios active.)
>>>>>>>
>>>>>>> —Jens
>>>>>>>
>>>>>>   --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Couchbase Mobile" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>>> msgid/mobile-couchbase/3f089edf-73a9-4efc-ab33-
>>>>>> 67f224e45c6d%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/mobile-couchbase/3f089edf-73a9-4efc-ab33-67f224e45c6d%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>>>
>>>>>>
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>       --
>>> You received this message because you are subscribed to the Google
>>> Groups "Couchbase Mobile" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>  To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/mobile-couchbase/41406555-f4fa-4a7c-a361-fefa2100b863%40googlegroups.com
>>> <https://groups.google.com/d/msgid/mobile-couchbase/41406555-f4fa-4a7c-a361-fefa2100b863%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>   --
>>  You received this message because you are subscribed to a topic in the
>> Google Groups "Couchbase Mobile" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/mobile-couchbase/EBuekY1Vizs/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/mobile-couchbase/CACSSHCGc3sTCQBoUtkzCgY6NkdnKWJHJrFVbDuW0n9e1xJCArQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/mobile-couchbase/CACSSHCGc3sTCQBoUtkzCgY6NkdnKWJHJrFVbDuW0n9e1xJCArQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Couchbase Mobile" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/mobile-couchbase/D0B1B930.1BA2C%25cberlin%40christophberlin.com
>> <https://groups.google.com/d/msgid/mobile-couchbase/D0B1B930.1BA2C%25cberlin%40christophberlin.com?utm_medium=email&utm_source=footer>.
>>
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>   --
> You received this message because you are subscribed to a topic in the
> Google Groups "Couchbase Mobile" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/mobile-couchbase/EBuekY1Vizs/unsubscribe
> .
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/mobile-couchbase/CACSSHCEE8mZ0TAdM2hG4pQnNHG7yaAA6ZM4ySeypdHuri0LarQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/mobile-couchbase/CACSSHCEE8mZ0TAdM2hG4pQnNHG7yaAA6ZM4ySeypdHuri0LarQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Couchbase Mobile" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/mobile-couchbase/D0B1BC92.1BA51%25cberlin%40christophberlin.com
> <https://groups.google.com/d/msgid/mobile-couchbase/D0B1BC92.1BA51%25cberlin%40christophberlin.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/CACSSHCEGH-F4YcE3bEPQoGqHd1craLQsT09vcFSQU91BpjNFMw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to