Documentation ¶
Index ¶
- Constants
- Variables
- func GenerateVAPIDKeys() (privateKey, publicKey string, err error)
- func SendNotification(message []byte, s *Subscription, options *Options) (*http.Response, error)
- func SendNotificationWithContext(ctx context.Context, message []byte, s *Subscription, options *Options) (*http.Response, error)
- type HTTPClient
- type Keys
- type Options
- type Subscription
- type Urgency
Constants ¶
const MaxRecordSize uint32 = 4096
Variables ¶
var ErrMaxPadExceeded = errors.New("payload has exceeded the maximum length")
Functions ¶
func GenerateVAPIDKeys ¶
GenerateVAPIDKeys will create a private and public VAPID key pair
func SendNotification ¶
SendNotification calls SendNotificationWithContext with default context for backwards-compatibility
func SendNotificationWithContext ¶
func SendNotificationWithContext(ctx context.Context, message []byte, s *Subscription, options *Options) (*http.Response, error)
SendNotificationWithContext sends a push notification to a subscription's endpoint Message Encryption for Web Push, and VAPID protocols. FOR MORE INFORMATION SEE RFC8291: https://datatracker.ietf.org/doc/rfc8291
Types ¶
type HTTPClient ¶
HTTPClient is an interface for sending the notification HTTP request / testing
type Options ¶
type Options struct { HTTPClient HTTPClient // Will replace with *http.Client by default if not included RecordSize uint32 // Limit the record size Subscriber string // Sub in VAPID JWT token Topic string // Set the Topic header to collapse a pending messages (Optional) TTL int // Set the TTL on the endpoint POST request Urgency Urgency // Set the Urgency header to change a message priority (Optional) VAPIDPublicKey string // VAPID public key, passed in VAPID Authorization header VAPIDPrivateKey string // VAPID private key, used to sign VAPID JWT token }
Options are config and extra params needed to send a notification
type Subscription ¶
Subscription represents a PushSubscription object from the Push API
type Urgency ¶
type Urgency string
Urgency indicates to the push service how important a message is to the user. This can be used by the push service to help conserve the battery life of a user's device by only waking up for important messages when battery is low.
const ( // UrgencyVeryLow requires device state: on power and Wi-Fi UrgencyVeryLow Urgency = "very-low" // UrgencyLow requires device state: on either power or Wi-Fi UrgencyLow Urgency = "low" // UrgencyNormal excludes device state: low battery UrgencyNormal Urgency = "normal" // UrgencyHigh admits device state: low battery UrgencyHigh Urgency = "high" )