Version: v0.0.0-...-0805cb3 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2020 License: Apache-2.0 Imports: 13 Imported by: 0



Package http_api implements a client for the new APNs HTTP/2 API (over an encrypted HTTP/2 connection to APNs)



This section is empty.


This section is empty.


func NewRequestProcessor

func NewRequestProcessor() common.PushRequestProcessor

NewRequestProcessor returns a new HTTPPushProcessor using net/http DefaultClient connection pool


type APNSErrorResponse

type APNSErrorResponse struct {
	Reason string
	// Unix timestamp. might be in milliseconds. Not used yet.
	Timestamp int64

APNSErrorResponse is struct to represent JSON data returned by APNs HTTP API if push request is not successful

type ClientFactory

type ClientFactory func(*http.Transport) HTTPClient

ClientFactory is an abstraction to create HTTPClient instances (one for each push service provider). The value is overridden for testing.

type HTTPClient

type HTTPClient interface {
	Do(*http.Request) (*http.Response, error)

HTTPClient is a mockable interface for the parts of http.Client used by the APNs HTTP2 module. The underlying implementation contains a connection pool, to tolerate spurious network errors.

type HTTPPushRequestProcessor

type HTTPPushRequestProcessor struct {
	// contains filtered or unexported fields

HTTPPushRequestProcessor sends push notification requests to APNs using HTTP API

func (*HTTPPushRequestProcessor) AddRequest

func (prp *HTTPPushRequestProcessor) AddRequest(request *common.PushRequest)

AddRequest will asynchronously process the request to send a push notification to APNs over HTTP/2

func (*HTTPPushRequestProcessor) Finalize

func (prp *HTTPPushRequestProcessor) Finalize()

Finalize will shut down all of the connections owned by HTTP/2 clients for each PSP.

func (*HTTPPushRequestProcessor) GetClient

GetClient will return the only HTTP client instance for the given psp. That instance uses the credentials and endpoint associated with the given psp.

func (*HTTPPushRequestProcessor) GetMaxPayloadSize

func (prp *HTTPPushRequestProcessor) GetMaxPayloadSize() int

GetMaxPayloadSize will return the max JSON payload size for HTTP/2 pushes (which is larger than the binary API)

func (*HTTPPushRequestProcessor) SetErrorReportChan

func (prp *HTTPPushRequestProcessor) SetErrorReportChan(errChan chan<- push.Error)

SetErrorReportChan will set the report chan used for asynchronous feedback that is not associated with a request. (not needed when using APNs's HTTP/2 API, but needed for the binary API)

func (*HTTPPushRequestProcessor) SetPushServiceConfig

func (prp *HTTPPushRequestProcessor) SetPushServiceConfig(c *push.PushServiceConfig)

SetPushServiceConfig is called during initialization to provide the unserialized contents of uniqush.conf. (does nothing for cloud messaging)

func (*HTTPPushRequestProcessor) TryGetClient

func (prp *HTTPPushRequestProcessor) TryGetClient(pspName string) HTTPClient

TryGetClient will


Path Synopsis
Package mocks implements mocks for unit testing APNs and the HTTP/2 API.
Package mocks implements mocks for unit testing APNs and the HTTP/2 API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL