chat: github.com/tinode/chat/server/push Index | Files | Directories

package push

import "github.com/tinode/chat/server/push"

Package push contains interfaces to be implemented by push notification plugins.

Index

Package Files

push.go

func Init Uses

func Init(jsconfig string) error

Init initializes registered handlers.

func Push Uses

func Push(msg *Receipt)

Push a single message

func Register Uses

func Register(name string, hnd Handler)

Register a push handler

func Stop Uses

func Stop()

Stop all pushes

type Handler Uses

type Handler interface {
    // Init initializes the handler.
    Init(jsonconf string) error

    // IsReady сheckы if the handler is initialized.
    IsReady() bool

    // Push returns a channel that the server will use to send messages to.
    // The message will be dropped if the channel blocks.
    Push() chan<- *Receipt

    // Stop terminates the handler's worker and stops sending pushes.
    Stop()
}

Handler is an interface which must be implemented by handlers.

type Payload Uses

type Payload struct {
    // Topic which received the message.
    Topic string `json:"topic"`
    // Message sender 'usrXXX'
    From string `json:"from"`
    // Timestapm of the message.
    Timestamp time.Time `json:"ts"`
    // Sequential ID of the message.
    SeqId int `json:"seq"`
    // MIME-Type of the message content, text/x-drafty or text/plain
    ContentType string `json:"mime"`
    // Actual Data.Content of the message, if requested
    Content interface{} `json:"content,omitempty"`
}

Payload is content of the push.

type Receipt Uses

type Receipt struct {
    // List of recipients, including those who did not receive the message
    To  map[t.Uid]Recipient `json:"to"`
    // Actual content to be delivered to the client
    Payload Payload `json:"payload"`
}

Receipt is the push payload with a list of recipients.

type Recipient Uses

type Recipient struct {
    // Count of user's connections that were live when the packet was dispatched from the server
    Delivered int `json:"delivered"`
    // List of user's devices that the packet was delivered to (if known). Len(Devices) >= Delivered
    Devices []string `json:"devices,omitempty"`
    // Unread count to include in the push
    Unread int `json:"unread"`
}

Recipient is a user targeted by the push.

Directories

PathSynopsis
fcmPackage fcm implements push notification plugin for Google FCM backend.
stdout

Package push imports 4 packages (graph) and is imported by 6 packages. Updated 2019-09-26. Refresh now. Tools for package owners.