Feedback support #4

wants to merge 110 commits into


None yet

2 participants


I've implemented feedback support, and if you want you can pull from my fork.

One note to make, I did change the README.textile so anyone in one of the commits so folks stumbling on my fork would know that it's not the original. You won't want to apply that, but I didn't separate it into its own commit unfortunately. As such, you'll want to selectively apply this commit 3fb6edc which contains those changes.

In that modification I also do assert copyright as well, but only over the code I've written, and I've released it under the same license you're using, MIT.

If you have questions, let me know.

jeremytregunna and others added some commits Mar 18, 2011
@jeremytregunna jeremytregunna replaced ActiveSupport with Yajl 5c50800
@jeremytregunna jeremytregunna Fixed #11256615 in pivotal tracker.
feedback client now implemented
@jeremytregunna jeremytregunna Fixed a bug where reset connections wouldn't be handled properly. Als…
…o added missing requires.
@jeremytregunna jeremytregunna added convenience method to parse the feedback data 699af5d
@jeremytregunna jeremytregunna Removed the requirement for the certificate to be a file. Now it's ex…
…pected to be a string. This will be handy for us when we go to hook apnserver into cassandra, where the certificate will be retreived as a string.
@jeremytregunna jeremytregunna Updated dependency information in gemspec 28eb862
@jeremytregunna jeremytregunna Able now to pass the key through to the modified apnserver as a file …
…path. Behaviour changed internally to take a string instead, so we pass it a string reading it from a file.
@jeremytregunna jeremytregunna Feedback service now tied in, though we're only printing records we g…
…et back from the service, not actually acting on them.
@jeremytregunna jeremytregunna Updated feedback code introducing a callback on the server to handle …
…feedback data. Suitable for primetime!
@jeremytregunna jeremytregunna updated README to reflect state of modifications 45971ad
@jeremytregunna jeremytregunna added feedback client spec, minimal. 7e6cc6e
@jeremytregunna jeremytregunna Added beanstalk requirement cad9fe5
@jeremytregunna jeremytregunna Rewrote Server to use beanstalk for input, instead of opening a liste…
…n socket.
@jeremytregunna jeremytregunna changed server daemon arguments, some don't apply anymore. cleanup of…
… server in lib
@jeremytregunna jeremytregunna Updated README to reflect state of project d73eaa6
@jeremytregunna jeremytregunna removed unnecessary files, renaming project to frac-apnserver to avoi…
…d confusion, and cleaned up a bit of nonsense (wrong urls, etc).
@jeremytregunna jeremytregunna refactoring of server handle_job 13822af
@jeremytregunna jeremytregunna packet formation change bf6b013
@jeremytregunna jeremytregunna Rename project from apnserver to racoon, to avoid confusion with apns…
@jeremytregunna jeremytregunna stale reference to apnserver 5e6a60b
@jeremytregunna jeremytregunna leftover h2. f6963fd
@jeremytregunna jeremytregunna pathnames were still showing as apnserver.log/pid 7b649e7
@jeremytregunna jeremytregunna Removed stale .swp, now closing sockets after 18 hours, apple doesn't…
… like long opened sockets.
@jeremytregunna jeremytregunna README.textile reference left over in Rakefile 5a16680
Jeremy Tregunna added godfile, fixed an exception in server, wrong require in notific…
@jeremytregunna jeremytregunna cleanup of handle_job 6c7f9b7
@jeremytregunna jeremytregunna mistake in notification hash example f3d5aa8
@jeremytregunna jeremytregunna reflecting custom fields a little better 06cfffe
@jeremytregunna jeremytregunna gem building 2842e1e
@jeremytregunna jeremytregunna changed periodic killing to 20 minutes of inactivity rather than stat…
…ic 18 hours
Jeremy Tregunna fixed glitch in server 1213785
@jeremytregunna jeremytregunna added racoon-send 0c3b09f
@jeremytregunna jeremytregunna version bump f53252f
@jeremytregunna jeremytregunna version bump 6889868
@jeremytregunna jeremytregunna Merge branch 'master' of bec1845
@jeremytregunna jeremytregunna Removed unneeded gems from Gemfile 9d0f6dd
@jeremytregunna jeremytregunna Removed some code which doesn't make sense for a multiproject apns 772b46d
@jeremytregunna jeremytregunna fixed typographical error indicating json_payload when it should have…
… indicated payload
@jeremytregunna jeremytregunna added send_at accessor to notification, updated docs accordingly 62ddd08
@jeremytregunna jeremytregunna formatting 7c7b373



eep, just noticed this has a whole whack of commits. You won't want this many. I completely changed how you receive notifications—I.e., no longer with the tcp socket, instead I brought in beanstalk. I've also changed the way certificates are passed in. I did not intend to contribute these back since it would fundamentally change how your project works. That's why I've renamed my fork of your project as well.

Crucial elements are the feedback_client.rb and then adding a periodic timer to your Server which every now and then (say, 8 hours or something) goes out makes a connection to feedback, reads the data off the socket, handles it in some way, and closes it.

jeremytregunna and others added some commits Apr 26, 2011
@jeremytregunna jeremytregunna now support the enhanced push notification format. No longer the basi…
…c format
@jeremytregunna jeremytregunna version bump e74f423
@jeremytregunna jeremytregunna version bump a0659ce
@jeremytregunna jeremytregunna Merge branch 'master' of 50e3362
@jeremytregunna jeremytregunna Merge branch 'master' of affabf1
@jeremytregunna jeremytregunna Merge branch 'master' of 65ce07d
@jeremytregunna jeremytregunna moved create_notification_from_packet to Notification, renamed it cre…
@jeremytregunna jeremytregunna after talking with apple, we were doing it right before. don't kill t…
…he socket, reconnect if we disconnect in the interim.
@jeremytregunna jeremytregunna typo 1601b5f
@jeremytregunna jeremytregunna debugging 34a0833
@jeremytregunna jeremytregunna debugging f387ad2
@jeremytregunna jeremytregunna Merge branch 'master' of 8d7a6c9
@jeremytregunna jeremytregunna Merge branch 'master' of d049842
@jeremytregunna jeremytregunna Merge branch 'master' of a8282d0
@jeremytregunna jeremytregunna Merge branch 'master' of e16897f
@jeremytregunna jeremytregunna Merge branch 'master' of ee43d78
@jeremytregunna jeremytregunna Merge branch 'master' of 9cf5c0f
@jeremytregunna jeremytregunna urgh b92b052
@jeremytregunna jeremytregunna think this is it 32628ef
@jeremytregunna jeremytregunna removed debugging code, fixed errors 1d13f92
@jeremytregunna jeremytregunna version bump 18be556
@jeremytregunna jeremytregunna Merge branch 'master' of f8a1a7c
@jeremytregunna jeremytregunna added firehose and worker -- first draft, probably doesn't work right.
Also added associated documentation
@jeremytregunna jeremytregunna removing send_at, doesn't make sense with the new pipeline bb6d043
@jeremytregunna jeremytregunna version bump, 0.5.0pre1 92b9ab2
@jeremytregunna jeremytregunna just added header 1d353f3
@jeremytregunna jeremytregunna worker bugfix 2eaafa7
@jeremytregunna jeremytregunna firehose bugfix 1dbbfa8
@jeremytregunna jeremytregunna added worker and firehose scripts 6913c3f
@jeremytregunna jeremytregunna changed to new packet format c838b6c
@jeremytregunna jeremytregunna renamed firehose and worker removing the 'd' 9b3bf96
@jeremytregunna jeremytregunna reflect new name in help messages 7b4e021
@jeremytregunna jeremytregunna removed server, obsoleted by worker and firehose 305626e
@jeremytregunna jeremytregunna removed racoond, obsoleted by racoon-worker and racoon-firehose 7ae8592
@jeremytregunna jeremytregunna moved client to apns/connection 59f2d74
@jeremytregunna jeremytregunna renamed feedback_client to apns/feedback_connection 5cfd2cb
@jeremytregunna jeremytregunna just adding a comment b243815
@jeremytregunna jeremytregunna updated dependency information 059b722
@jeremytregunna jeremytregunna Merge branch 'master' of 756906e
Jeremy Tregunna removed racoon.god, added two new godfiles -- one for worker, one for…
… firehose
@jeremytregunna jeremytregunna fixed paths 820055e
Jeremy Tregunna fixed dep issues cbb7562
@jeremytregunna jeremytregunna using yaml instead of json for beanstalk payload 8ad8c50
@jeremytregunna jeremytregunna switching to yaml 887bfaf
@jeremytregunna jeremytregunna bugfix in firehose 75f4b53
@jeremytregunna jeremytregunna spawned process not finding project_hash, just inlining aa9deb9
@jeremytregunna jeremytregunna getting rid of the spawned process, i just don't understand eventmach…
…ine as well as i thought i guess
@jeremytregunna jeremytregunna typo 2d174c5
@jeremytregunna jeremytregunna fixed connection e8508dd
@jeremytregunna jeremytregunna forgot to delete the job 3283b7c
@jeremytregunna jeremytregunna version bump & documentation update acc9761
@jeremytregunna jeremytregunna added back integration code for feedback service 83115be
@jeremytregunna jeremytregunna added configurable tube arguments, defaulting to 'racoon' 5bde233
@jeremytregunna jeremytregunna Optimizing architecture -- using ZMQMachine, dropping EventMachine. 1a54ba4
@jeremytregunna jeremytregunna removing eventmachine from gemfile a86d5b8
@jeremytregunna jeremytregunna missing call to join 3322913
@jeremytregunna jeremytregunna typo 1dfe373
@jeremytregunna jeremytregunna made beanstalks an ivar 589925d
@jeremytregunna jeremytregunna startup message modification 5a73228 Updated arguments in godfile 50f46e1
@jeremytregunna jeremytregunna missing argument e4970cf
@jeremytregunna jeremytregunna forgot one line of code 6a169a3
@jeremytregunna jeremytregunna removing old startup scripts. use supplied godfiles instead, that's w…
…hat i do.
@jeremytregunna jeremytregunna now reading errors from socket and calling a block ba49e31
@jeremytregunna jeremytregunna errant end 3d5fe8d
@jeremytregunna jeremytregunna safety in case error_callback isn't supplied 21d8d50
@jeremytregunna jeremytregunna version bump 668cf92
@jeremytregunna jeremytregunna changed api in a very minor way. making error_callback an ivar instead f471584
@jeremytregunna jeremytregunna version bump 5e1c435
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment