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 AuthScheme
- 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 ¶ added in v1.4.1
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 AuthScheme ¶ added in v1.4.8
type AuthScheme string
AuthScheme is the type for VAPID authentication schemes.
const ( // Vapid is the original VAPID scheme. Vapid AuthScheme = "vapid" // WebPush is the modern VAPID scheme. WebPush AuthScheme = "webpush" )
type HTTPClient ¶
HTTPClient is an interface for sending the notification HTTP request / testing
type Options ¶
type Options struct {
AuthScheme AuthScheme // VAPID authentication scheme, defaults to "vapid"
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
VapidExpiration time.Time // optional expiration for VAPID JWT token (defaults to now + 12 hours)
}
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" )