Documentation
¶
Overview ¶
Package gcm provides send and receive GCM functionality.
Index ¶
- Constants
- Variables
- func Close(senderId string) error
- func Listen(senderId, apiKey string, h MessageHandler, stop <-chan bool) error
- func SendXmpp(senderId, apiKey string, m XmppMessage) (string, int, error)
- type CcsMessage
- type Data
- type HttpMessage
- type HttpResponse
- type MessageHandler
- type Notification
- type Result
- type XmppMessage
Constants ¶
const ( CCSAck = "ack" CCSNack = "nack" CCSControl = "control" CCSReceipt = "receipt" )
Variables ¶
Functions ¶
func Listen ¶
func Listen(senderId, apiKey string, h MessageHandler, stop <-chan bool) error
Listen blocks and connects to GCM waiting for messages, calling the handler for CCS message that can be of interest to the listener: upstream messages, delivery receipt notifications, errors. An optional stop channel can be provided to stop listening.
Types ¶
type CcsMessage ¶
type CcsMessage struct {
From string `json:"from, omitempty"`
MessageId string `json:"message_id, omitempty"`
MessageType string `json:"message_type, omitempty"`
RegistrationId string `json:"registration_id,omitempty"`
Error string `json:"error,omitempty"`
ErrorDescription string `json:"error_description,omitempty"`
Category string `json:"category, omitempty"`
Data Data `json:"data,omitempty"`
ControlType string `json:"control_type,omitempty"`
}
CcsMessage is an Xmpp message sent from CCS.
type HttpMessage ¶
type HttpMessage struct {
To string `json:"to,omitempty"`
RegistrationIds []string `json:"registration_ids,omitempty"`
CollapseKey string `json:"collapse_key,omitempty"`
Priority string `json:"priority,omitempty"`
ContentAvailable bool `json:"content_available,omitempty"`
DelayWhileIdle bool `json:"delay_while_idle,omitempty"`
TimeToLive uint `json:"time_to_live,omitempty"`
RestrictedPackageName string `json:"restricted_package_name,omitempty"`
DryRun bool `json:"dry_run,omitempty"`
Data Data `json:"data,omitempty"`
Notification *Notification `json:"notification,omitempty"`
}
A GCM Http message.
type HttpResponse ¶
type HttpResponse struct {
MulticastId int `json:"multicast_id,omitempty"`
Success uint `json:"success,omitempty"`
Failure uint `json:"failure,omitempty"`
CanonicalIds uint `json:"canonical_ids,omitempty"`
Results []Result `json:"results,omitempty"`
MessageId uint `json:"message_id,omitempty"`
Error string `json:"error,omitempty"`
}
HttpResponse is the GCM connection server response to an HTTP downstream message request.
func SendHttp ¶
func SendHttp(apiKey string, m HttpMessage) (*HttpResponse, error)
Send a message using the HTTP GCM connection server.
type MessageHandler ¶
type MessageHandler func(cm CcsMessage) error
MessageHandler is the type for a function that handles a CCS message. The CCS message can be an upstream message (device to server) or a message from CCS (e.g. a delivery receipt).
type Notification ¶
type Notification struct {
Title string `json:"title,omitempty"`
Body string `json:"body,omitempty"`
Icon string `json:"icon,omitempty"`
Sound string `json:"sound,omitempty"`
Badge string `json:"badge,omitempty"`
Tag string `json:"tag,omitempty"`
Color string `json:"color,omitempty"`
ClickAction string `json:"click_action,omitempty"`
BodyLocKey string `json:"body_loc_key,omitempty"`
BodyLocArgs string `json:"body_loc_args,omitempty"`
TitleLocArgs string `json:"title_loc_args,omitempty"`
TitleLocKey string `json:"title_loc_key,omitempty"`
}
The notification payload of a GCM message.
type Result ¶
type Result struct {
MessageId string `json:"message_id,omitempty"`
RegistrationId string `json:"registration_id,omitempty"`
Error string `json:"error,omitempty"`
}
Result represents the status of a processed Http message.
type XmppMessage ¶
type XmppMessage struct {
To string `json:"to,omitempty"`
MessageId string `json:"message_id"`
MessageType string `json:"message_type,omitempty"`
CollapseKey string `json:"collapse_key,omitempty"`
Priority string `json:"priority,omitempty"`
ContentAvailable bool `json:"content_available,omitempty"`
DelayWhileIdle bool `json:"delay_while_idle,omitempty"`
TimeToLive uint `json:"time_to_live,omitempty"`
DeliveryReceiptRequested bool `json:"delivery_receipt_requested,omitempty"`
DryRun bool `json:"dry_run,omitempty"`
Data Data `json:"data,omitempty"`
Notification *Notification `json:"notification,omitempty"`
}
A GCM Xmpp message.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
gcm-logger
command
Program gcm-logger logs and echoes as a GCM "server".
|
Program gcm-logger logs and echoes as a GCM "server". |