Comments (3)
I'm wondering the same thing.
My guess is that it should be used in pusher.rb after writing to the connection.
The thing is, I don't think the response from Apple is synchronous. The docs are a bit confusing, because the table suggests that 0 is returned when no error occurs, but elsewhere it says:
"If you send a notification that is accepted by APNs, nothing is returned."
And if there is an error response, Apple hangs up.
APNs returns an error-response packet and closes the connection
It looks like Grocer will retry 3 times by default (see connection.rb with_connection), but it doesn't appear to read off the connection to determine the ErrorResponse.
from grocer.
For more information: http://redth.codes/the-problem-with-apples-push-notification-ser/
from grocer.
You are correct - we have an ErrorResponse
class, but don't currently use it. In #14 you'll find a lengthy discussion and several proposed solutions for not dropping messages and also reading the error response. The most promising would be adding a producer/consumer queue, with a ring buffer to hold sent messages. This would allow us to continue to write at high speeds, but not block while waiting an arbitrary amount of time for an error message from APNS.
None of the original authors currently have available time to undertake the changes, but would be happy to work with any individuals who wish to.
from grocer.
Related Issues (20)
- Push sent succesfully, the lockscreen wakes up but notification doesnt show up HOT 3
- connection drops silently when notification sent to sandbox device token no error, no broken pipe not a single clue HOT 2
- Found module delegate error HOT 3
- New HTTP/2 Push Notification Provider API from Apple HOT 10
- Alert field HOT 1
- OpenSSL::SSL::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=SSLv3 read server session ticket A HOT 2
- Send notifications using HTTP/2 request HOT 1
- Notification arrives in iphone5, but not in ipad HOT 4
- Rspec test case for sending ios push notification with Grocer is not working HOT 2
- Not getting notifications when badge value changed HOT 6
- Errno::EPIPE: Broken pipe HOT 2
- Best practice on using grocer for large scale push notifications HOT 2
- Best practice on using grocer for large scale push notifications
- Success method undefined on notification HOT 3
- SSL_connect returned=1 errno=0 state=unknown state: tlsv1 alert internal error HOT 2
- APNS p8 certificate HOT 2
- Acceptance testing server not working? HOT 1
- Fixnum deprecated in Ruby 2.4 HOT 1
- Not sending notifications in production using with heroku HOT 2
- How to set Priority? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from grocer.