go: github.com/pubnub/go Index | Files | Directories

package pubnub

import "github.com/pubnub/go"

Index

Package Files

add_channel_channel_group_request.go add_channels_to_push_request.go clients.go config.go context.go delete_channel_group_request.go endpoints.go enums.go fetch_request.go fire_request.go get_state_request.go grant_common.go grant_request.go grant_token_request.go heartbeat_manager.go heartbeat_request.go here_now_request.go history_delete_request.go history_request.go leave_request.go list_all_channel_group_request.go list_push_provisions_request.go listener_manager.go message_actions_add.go message_actions_get.go message_actions_remove.go message_counts_request.go objects_common.go objects_create_space.go objects_create_user.go objects_delete_space.go objects_delete_user.go objects_get_members.go objects_get_memberships.go objects_get_space.go objects_get_spaces.go objects_get_user.go objects_get_users.go objects_manage_members.go objects_manage_memberships.go objects_update_space.go objects_update_user.go presence_request.go publish_request.go pubnub.go reconnection_manager.go remove_all_push_channels_request.go remove_channel_channel_group_request.go remove_channels_from_push_request.go request.go request_context.go request_workers.go set_state_request.go signal_request.go state_manager.go subscribe_context_helper_1_7.go subscribe_request.go subscription_manager.go telemetry_manager.go time_request.go token_manager.go unsubscribe_builder.go where_now_request.go

Constants

const (
    // PNObjectsUserEvent is the enum when the event of type `user` occurs
    PNObjectsUserEvent PNObjectsEventType = "user"
    // PNObjectsSpaceEvent is the enum when the event of type `space` occurs
    PNObjectsSpaceEvent = "space"
    // PNObjectsMembershipEvent is the enum when the event of type `membership` occurs
    PNObjectsMembershipEvent = "membership"
    // PNObjectsNoneEvent is used for error handling
    PNObjectsNoneEvent = "none"
)
const (
    // PNObjectsEventCreate is the enum when the event `create` occurs
    PNObjectsEventCreate PNObjectsEvent = "create"
    // PNObjectsEventUpdate is the enum when the event `update` occurs
    PNObjectsEventUpdate = "update"
    // PNObjectsEventDelete is the enum when the event `delete` occurs
    PNObjectsEventDelete = "delete"
)
const (
    // PNRead Read Perms
    PNRead PNGrantBitMask = 1
    // PNWrite Write Perms
    PNWrite = 2
    // PNManage Manage Perms
    PNManage = 4
    // PNDelete Delete Perms
    PNDelete = 8
    // PNCreate Create Perms
    PNCreate = 16
)
const (
    // Version :the version of the SDK
    Version = "4.5.1"
    // MaxSequence for publish messages
    MaxSequence = 65535
)

Default constants

const (
    // StrMissingPubKey shows Missing Publish Key message
    StrMissingPubKey = "Missing Publish Key"
    // StrMissingSubKey shows Missing Subscribe Key message
    StrMissingSubKey = "Missing Subscribe Key"
    // StrMissingChannel shows Channel message
    StrMissingChannel = "Missing Channel"
    // StrMissingChannelGroup shows Channel Group message
    StrMissingChannelGroup = "Missing Channel Group"
    // StrMissingMessage shows Missing Message message
    StrMissingMessage = "Missing Message"
    // StrMissingSecretKey shows Missing Secret Key message
    StrMissingSecretKey = "Missing Secret Key"
    // StrMissingUUID shows Missing UUID message
    StrMissingUUID = "Missing UUID"
    // StrMissingDeviceID shows Missing Device ID message
    StrMissingDeviceID = "Missing Device ID"
    // StrMissingPushType shows Missing Push Type message
    StrMissingPushType = "Missing Push Type"
    // StrChannelsTimetoken shows Missing Channels Timetoken message
    StrChannelsTimetoken = "Missing Channels Timetoken"
    // StrChannelsTimetokenLength shows Length of Channels Timetoken message
    StrChannelsTimetokenLength = "Length of Channels Timetoken and Channels do not match"
    // StrInvalidTTL shows Invalid TTL message
    StrInvalidTTL = "Invalid TTL"
)

func EnumArrayToStringArray Uses

func EnumArrayToStringArray(include interface{}) []string

EnumArrayToStringArray converts a string enum to an array

func NewHTTP1Client Uses

func NewHTTP1Client(connectTimeout, responseReadTimeout, maxIdleConnsPerHost int) *http.Client

NewHTTP1Client creates a new HTTP 1 client with a new transport initialized with connect and read timeout

func NewHTTP2Client Uses

func NewHTTP2Client(connectTimeout int, responseReadTimeout int) *http.Client

NewHTTP2Client creates a new HTTP 2 client with a new transport initialized with connect and read timeout

func SetQueryParam Uses

func SetQueryParam(q *url.Values, queryParam map[string]string)

type AddChannelToChannelGroupResponse Uses

type AddChannelToChannelGroupResponse struct {
}

AddChannelToChannelGroupResponse is the struct returned when the Execute function of AddChannelToChannelGroup is called.

type AddPushNotificationsOnChannelsResponse Uses

type AddPushNotificationsOnChannelsResponse struct{}

AddPushNotificationsOnChannelsResponse is response structure for AddPushNotificationsOnChannelsBuilder

type AllChannelGroupResponse Uses

type AllChannelGroupResponse struct {
    Channels     []string
    ChannelGroup string
}

AllChannelGroupResponse is the struct returned when the Execute function of List All Channel Groups is called.

type ChannelPermissions Uses

type ChannelPermissions struct {
    Read   bool
    Write  bool
    Delete bool
}

ChannelPermissions contains all the acceptable perms for channels

type ChannelPermissionsWithToken Uses

type ChannelPermissionsWithToken struct {
    Permissions  ChannelPermissions
    BitMaskPerms int64
    Token        string
    Timestamp    int64
    TTL          int
}

ChannelPermissionsWithToken is used for channels resource type permissions

type Config Uses

type Config struct {
    PublishKey                 string             // PublishKey you can get it from admin panel (only required if publishing).
    SubscribeKey               string             // SubscribeKey you can get it from admin panel.
    SecretKey                  string             // SecretKey (only required for modifying/revealing access permissions).
    AuthKey                    string             // AuthKey If Access Manager is utilized, client will use this AuthKey in all restricted requests.
    Origin                     string             // Custom Origin if needed
    UUID                       string             // UUID to be used as a device identifier, a default uuid is generated if not passed.
    CipherKey                  string             // If CipherKey is passed, all communications to/from PubNub will be encrypted.
    Secure                     bool               // True to use TLS
    ConnectTimeout             int                // net.Dialer.Timeout
    NonSubscribeRequestTimeout int                // http.Client.Timeout for non-subscribe requests
    SubscribeRequestTimeout    int                // http.Client.Timeout for subscribe requests only
    HeartbeatInterval          int                // The frequency of the pings to the server to state that the client is active
    PresenceTimeout            int                // The time after which the server will send a timeout for the client
    MaximumReconnectionRetries int                // The config sets how many times to retry to reconnect before giving up.
    MaximumLatencyDataAge      int                // Max time to store the latency data for telemetry
    FilterExpression           string             // Feature to subscribe with a custom filter expression.
    PNReconnectionPolicy       ReconnectionPolicy // Reconnection policy selection
    Log                        *log.Logger        // Logger instance
    SuppressLeaveEvents        bool               // When true the SDK doesn't send out the leave requests.
    DisablePNOtherProcessing   bool               // PNOther processing looks for pn_other in the JSON on the recevied message
    UseHTTP2                   bool               // HTTP2 Flag
    MessageQueueOverflowCount  int                // When the limit is exceeded by the number of messages received in a single subscribe request, a status event PNRequestMessageCountExceededCategory is fired.
    MaxIdleConnsPerHost        int                // Used to set the value of HTTP Transport's MaxIdleConnsPerHost.
    MaxWorkers                 int                // Number of max workers for Publish and Grant requests
    UsePAMV3                   bool               // Use PAM version 2, Objects requets would still use PAM v3
    StoreTokensOnGrant         bool               // Will store grant v3 tokens in token manager for further use.
}

Config instance is storage for user-provided information which describe further PubNub client behaviour. Configuration instance contain additional set of properties which allow to perform precise PubNub client configuration.

func NewConfig Uses

func NewConfig() *Config

NewConfig initiates the config with default values.

func NewDemoConfig Uses

func NewDemoConfig() *Config

NewDemoConfig initiates the config with demo keys, for tests only.

func (*Config) SetPresenceTimeout Uses

func (c *Config) SetPresenceTimeout(timeout int) *Config

SetPresenceTimeout sets the presence timeout and automatically calulates the preferred timeout value. timeout: How long the server will consider the client alive for presence.

func (*Config) SetPresenceTimeoutWithCustomInterval Uses

func (c *Config) SetPresenceTimeoutWithCustomInterval(
    timeout, interval int) *Config

SetPresenceTimeoutWithCustomInterval sets the presence timeout and interval. timeout: How long the server will consider the client alive for presence. interval: How often the client will announce itself to server.

type Context Uses

type Context interface {
    Deadline() (deadline time.Time, ok bool)
    Done() <-chan struct{}
    Err() error
    Value(key interface{}) interface{}
}

type DeleteChannelGroupResponse Uses

type DeleteChannelGroupResponse struct{}

DeleteChannelGroupResponse is response structure for Delete Channel Group function

type FetchResponse Uses

type FetchResponse struct {
    Messages map[string][]FetchResponseItem
}

FetchResponse is the response to Fetch request. It contains a map of type FetchResponseItem

type FetchResponseItem Uses

type FetchResponseItem struct {
    Message        interface{}                               `json:"message"`
    Meta           interface{}                               `json:"meta"`
    MessageActions map[string]PNHistoryMessageActionsTypeMap `json:"actions"`
    Timetoken      string                                    `json:"timetoken"`
}

FetchResponseItem contains the message and the associated timetoken.

type GetStateResponse Uses

type GetStateResponse struct {
    State map[string]interface{}
    UUID  string
}

GetStateResponse is the struct returned when the Execute function of GetState is called.

type GrantResources Uses

type GrantResources struct {
    Channels map[string]int64 `json:"channels" cbor:"chan"`
    Groups   map[string]int64 `json:"groups" cbor:"grp"`
    Users    map[string]int64 `json:"users" cbor:"usr"`
    Spaces   map[string]int64 `json:"spaces" cbor:"spc"`
}

GrantResources is the struct used to decode the server response

type GrantResourcesWithPermissions Uses

type GrantResourcesWithPermissions struct {
    Channels        map[string]ChannelPermissionsWithToken
    Groups          map[string]GroupPermissionsWithToken
    Users           map[string]UserSpacePermissionsWithToken
    Spaces          map[string]UserSpacePermissionsWithToken
    ChannelsPattern map[string]ChannelPermissionsWithToken
    GroupsPattern   map[string]GroupPermissionsWithToken
    UsersPattern    map[string]UserSpacePermissionsWithToken
    SpacesPattern   map[string]UserSpacePermissionsWithToken
}

GrantResourcesWithPermissions is used as a common struct to store all resource type permissions

func ParseGrantResources Uses

func ParseGrantResources(res GrantResources, token string, timetoken int64, ttl int) *GrantResourcesWithPermissions

ParseGrantResources parses the token for permissions and adds them along the other values to the GrantResourcesWithPermissions struct

type GrantResponse Uses

type GrantResponse struct {
    Level        string
    SubscribeKey string

    TTL int

    Channels      map[string]*PNPAMEntityData
    ChannelGroups map[string]*PNPAMEntityData

    ReadEnabled   bool
    WriteEnabled  bool
    ManageEnabled bool
    DeleteEnabled bool
}

GrantResponse is the struct returned when the Execute function of Grant is called.

type GroupPermissions Uses

type GroupPermissions struct {
    Read   bool
    Manage bool
}

GroupPermissions contains all the acceptable perms for groups

type GroupPermissionsWithToken Uses

type GroupPermissionsWithToken struct {
    Permissions  GroupPermissions
    BitMaskPerms int64
    Token        string
    Timestamp    int64
    TTL          int
}

GroupPermissionsWithToken is used for groups resource type permissions

type HeartbeatManager Uses

type HeartbeatManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

HeartbeatManager is a struct that assists in running of the heartbeat.

func (*HeartbeatManager) Destroy Uses

func (m *HeartbeatManager) Destroy()

Destroy stops the running heartbeat.

type HereNowChannelData Uses

type HereNowChannelData struct {
    ChannelName string

    Occupancy int

    Occupants []HereNowOccupantsData
}

HereNowChannelData is the struct containing the occupancy details of the channels.

type HereNowOccupantsData Uses

type HereNowOccupantsData struct {
    UUID string

    State map[string]interface{}
}

HereNowOccupantsData is the struct containing the state and UUID of the occupants in the channel.

type HereNowResponse Uses

type HereNowResponse struct {
    TotalChannels  int
    TotalOccupancy int

    Channels []HereNowChannelData
}

HereNowResponse is the struct returned when the Execute function of HereNow is called.

type HistoryDeleteResponse Uses

type HistoryDeleteResponse struct {
}

HistoryDeleteResponse is the struct returned when Delete Messages is called.

type HistoryResponse Uses

type HistoryResponse struct {
    Messages       []HistoryResponseItem
    StartTimetoken int64
    EndTimetoken   int64
}

HistoryResponse is used to store the response from the History request.

type HistoryResponseItem Uses

type HistoryResponseItem struct {
    Message   interface{}
    Meta      interface{}
    Timetoken int64
}

HistoryResponseItem is used to store the Message and the associated timetoken from the History request.

type JobQItem Uses

type JobQItem struct {
    Req         *http.Request
    Client      *http.Client
    JobResponse chan *JobQResponse
}

type JobQResponse Uses

type JobQResponse struct {
    Resp  *http.Response
    Error error
}

type LatencyEntry Uses

type LatencyEntry struct {
    D   int64
    L   float64
}

LatencyEntry is the struct to store the timestamp and latency values.

type ListPushProvisionsRequestResponse Uses

type ListPushProvisionsRequestResponse struct {
    Channels []string
}

ListPushProvisionsRequestResponse is the struct returned when the Execute function of ListPushProvisions is called.

type Listener Uses

type Listener struct {
    Status              chan *PNStatus
    Message             chan *PNMessage
    Presence            chan *PNPresence
    Signal              chan *PNMessage
    UserEvent           chan *PNUserEvent
    SpaceEvent          chan *PNSpaceEvent
    MembershipEvent     chan *PNMembershipEvent
    MessageActionsEvent chan *PNMessageActionsEvent
}

func NewListener Uses

func NewListener() *Listener

type ListenerManager Uses

type ListenerManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

type MessageAction Uses

type MessageAction struct {
    ActionType  string `json:"type"`
    ActionValue string `json:"value"`
}

MessageAction struct is used to create a Message Action

type MessageCountsResponse Uses

type MessageCountsResponse struct {
    Channels map[string]int
}

MessageCountsResponse is the response to MessageCounts request. It contains a map of type MessageCountsResponseItem

type OperationType Uses

type OperationType int

OperationType is used as an enum to catgorize the various operations in the APIs lifecycle

const (
    // PNSubscribeOperation is the enum used for the Subcribe operation.
    PNSubscribeOperation OperationType = 1 + iota
    // PNUnsubscribeOperation is the enum used for the Unsubcribe operation.
    PNUnsubscribeOperation
    // PNPublishOperation is the enum used for the Publish operation.
    PNPublishOperation
    // PNFireOperation is the enum used for the Fire operation.
    PNFireOperation
    // PNHistoryOperation is the enum used for the History operation.
    PNHistoryOperation
    // PNFetchMessagesOperation is the enum used for the Fetch operation.
    PNFetchMessagesOperation
    // PNWhereNowOperation is the enum used for the Where Now operation.
    PNWhereNowOperation
    // PNHereNowOperation is the enum used for the Here Now operation.
    PNHereNowOperation
    // PNHeartBeatOperation is the enum used for the Heartbeat operation.
    PNHeartBeatOperation
    // PNSetStateOperation is the enum used for the Set State operation.
    PNSetStateOperation
    // PNGetStateOperation is the enum used for the Get State operation.
    PNGetStateOperation
    // PNAddChannelsToChannelGroupOperation is the enum used for the Add Channels to Channel Group operation.
    PNAddChannelsToChannelGroupOperation
    // PNRemoveChannelFromChannelGroupOperation is the enum used for the Remove Channels from Channel Group operation.
    PNRemoveChannelFromChannelGroupOperation
    // PNRemoveGroupOperation is the enum used for the Remove Channel Group operation.
    PNRemoveGroupOperation
    // PNChannelsForGroupOperation is the enum used for the List Channels of Channel Group operation.
    PNChannelsForGroupOperation
    // PNPushNotificationsEnabledChannelsOperation is the enum used for the List Channels with Push Notifications enabled operation.
    PNPushNotificationsEnabledChannelsOperation
    // PNAddPushNotificationsOnChannelsOperation is the enum used for the Add Channels to Push Notifications operation.
    PNAddPushNotificationsOnChannelsOperation
    // PNRemovePushNotificationsFromChannelsOperation is the enum used for the Remove Channels from Push Notifications operation.
    PNRemovePushNotificationsFromChannelsOperation
    // PNRemoveAllPushNotificationsOperation is the enum used for the Remove All Channels from Push Notifications operation.
    PNRemoveAllPushNotificationsOperation
    // PNTimeOperation is the enum used for the Time operation.
    PNTimeOperation
    // PNAccessManagerGrant is the enum used for the Access Manager Grant operation.
    PNAccessManagerGrant
    // PNAccessManagerRevoke is the enum used for the Access Manager Revoke operation.
    PNAccessManagerRevoke
    // PNDeleteMessagesOperation is the enum used for the Delete Messages from History operation.
    PNDeleteMessagesOperation
    // PNMessageCountsOperation is the enum used for History with messages operation.
    PNMessageCountsOperation
    // PNSignalOperation is the enum used for Signal opertaion.
    PNSignalOperation
    // PNCreateUserOperation is the enum used to create users in the Object API.
    // ENUM ORDER needs to be maintained for Objects AIP
    PNCreateUserOperation
    // PNGetUsersOperation is the enum used to get users in the Object API.
    PNGetUsersOperation
    // PNGetUserOperation is the enum used to get user in the Object API.
    PNGetUserOperation
    // PNUpdateUserOperation is the enum used to update users in the Object API.
    PNUpdateUserOperation
    // PNDeleteUserOperation is the enum used to delete users in the Object API.
    PNDeleteUserOperation
    // PNGetSpaceOperation is the enum used to get space in the Object API.
    PNGetSpaceOperation
    // PNGetSpacesOperation is the enum used to get spaces in the Object API.
    PNGetSpacesOperation
    // PNCreateSpaceOperation is the enum used to create space in the Object API.
    PNCreateSpaceOperation
    // PNDeleteSpaceOperation is the enum used to delete space in the Object API.
    PNDeleteSpaceOperation
    // PNUpdateSpaceOperation is the enum used to update space in the Object API.
    PNUpdateSpaceOperation
    // PNGetMembershipsOperation is the enum used to get memberships in the Object API.
    PNGetMembershipsOperation
    // PNGetMembersOperation is the enum used to get members in the Object API.
    PNGetMembersOperation
    // PNManageMembershipsOperation is the enum used to manage memberships in the Object API.
    PNManageMembershipsOperation
    // PNManageMembersOperation is the enum used to manage members in the Object API.
    // ENUM ORDER needs to be maintained for Objects API.
    PNManageMembersOperation
    // PNAccessManagerGrantToken is the enum used for Grant v3 requests.
    PNAccessManagerGrantToken
    // PNGetMessageActionsOperation is the enum used for Message Actions Get requests.
    PNGetMessageActionsOperation
    // PNHistoryWithActionsOperation is the enum used for History with Actions requests.
    PNHistoryWithActionsOperation
    // PNAddMessageActionsOperation is the enum used for Message Actions Add requests.
    PNAddMessageActionsOperation
    // PNRemoveMessageActionsOperation is the enum used for Message Actions Remove requests.
    PNRemoveMessageActionsOperation
)

func (OperationType) String Uses

func (t OperationType) String() string

type Operations Uses

type Operations struct {
    // contains filtered or unexported fields
}

Operations is the struct to store the latency values of different operations.

type PNAccessManagerKeyData Uses

type PNAccessManagerKeyData struct {
    ReadEnabled   bool
    WriteEnabled  bool
    ManageEnabled bool
    DeleteEnabled bool
    TTL           int
}

PNAccessManagerKeyData is the struct containing the access details of the channel groups.

type PNAddMessageActionsResponse Uses

type PNAddMessageActionsResponse struct {
    Data PNMessageActionsResponse `json:"data"`
    // contains filtered or unexported fields
}

PNAddMessageActionsResponse is the Add Message Actions API Response

type PNCreateSpaceResponse Uses

type PNCreateSpaceResponse struct {
    Data PNSpace `json:"data"`
    // contains filtered or unexported fields
}

PNCreateSpaceResponse is the Objects API Response for create space

type PNCreateUserResponse Uses

type PNCreateUserResponse struct {
    Data PNUser `json:"data"`
    // contains filtered or unexported fields
}

PNCreateUserResponse is the Objects API Response for create user

type PNDeleteSpaceResponse Uses

type PNDeleteSpaceResponse struct {
    Data interface{} `json:"data"`
    // contains filtered or unexported fields
}

PNDeleteSpaceResponse is the Objects API Response for delete space

type PNDeleteUserResponse Uses

type PNDeleteUserResponse struct {
    Data interface{} `json:"data"`
    // contains filtered or unexported fields
}

PNDeleteUserResponse is the Objects API Response for delete user

type PNGetMembersResponse Uses

type PNGetMembersResponse struct {
    Data       []PNMembers `json:"data"`
    TotalCount int         `json:"totalCount"`
    Next       string      `json:"next"`
    Prev       string      `json:"prev"`
    // contains filtered or unexported fields
}

PNGetMembersResponse is the Objects API Response for Get Members

type PNGetMembershipsResponse Uses

type PNGetMembershipsResponse struct {
    Data       []PNMemberships `json:"data"`
    TotalCount int             `json:"totalCount"`
    Next       string          `json:"next"`
    Prev       string          `json:"prev"`
    // contains filtered or unexported fields
}

PNGetMembershipsResponse is the Objects API Response for Get Memberships

type PNGetMessageActionsMore Uses

type PNGetMessageActionsMore struct {
    URL   string `json:"url"`
    Start string `json:"start"`
    End   string `json:"end"`
    Limit int    `json:"limit"`
}

PNGetMessageActionsMore is the struct used when the PNGetMessageActionsResponse has more link

type PNGetMessageActionsResponse Uses

type PNGetMessageActionsResponse struct {
    Data []PNMessageActionsResponse `json:"data"`
    More PNGetMessageActionsMore    `json:"more"`
    // contains filtered or unexported fields
}

PNGetMessageActionsResponse is the GetMessageActions API Response

type PNGetSpaceResponse Uses

type PNGetSpaceResponse struct {
    Data PNSpace `json:"data"`
    // contains filtered or unexported fields
}

PNGetSpaceResponse is the Objects API Response for Get Space

type PNGetSpacesResponse Uses

type PNGetSpacesResponse struct {
    Data       []PNSpace `json:"data"`
    TotalCount int       `json:"totalCount"`
    Next       string    `json:"next"`
    Prev       string    `json:"prev"`
    // contains filtered or unexported fields
}

PNGetSpacesResponse is the Objects API Response for Get Spaces

type PNGetUserResponse Uses

type PNGetUserResponse struct {
    Data PNUser `json:"data"`
    // contains filtered or unexported fields
}

PNGetUserResponse is the Objects API Response for Get User

type PNGetUsersResponse Uses

type PNGetUsersResponse struct {
    Data       []PNUser `json:"data"`
    TotalCount int      `json:"totalCount"`
    Next       string   `json:"next"`
    Prev       string   `json:"prev"`
    // contains filtered or unexported fields
}

PNGetUsersResponse is the Objects API Response for Get Users

type PNGrantBitMask Uses

type PNGrantBitMask int64

PNGrantBitMask is the type for perms BitMask

type PNGrantTokenData Uses

type PNGrantTokenData struct {
    Message string `json:"message"`
    Token   string `json:"token"`
}

PNGrantTokenData is the struct used to decode the server response

type PNGrantTokenDecoded Uses

type PNGrantTokenDecoded struct {
    Resources GrantResources         `cbor:"res"`
    Patterns  GrantResources         `cbor:"pat"`
    Meta      map[string]interface{} `cbor:"meta"`
    Signature []byte                 `cbor:"sig"`
    Version   int                    `cbor:"v"`
    Timestamp int64                  `cbor:"t"`
    TTL       int                    `cbor:"ttl"`
}

PNGrantTokenDecoded is the struct used to decode the server response

func GetPermissions Uses

func GetPermissions(token string) (PNGrantTokenDecoded, error)

GetPermissions decodes the CBORToken

type PNGrantTokenResponse Uses

type PNGrantTokenResponse struct {
    Data PNGrantTokenData `json:"data"`
    // contains filtered or unexported fields
}

PNGrantTokenResponse is the struct returned when the Execute function of Grant Token is called.

type PNGrantType Uses

type PNGrantType int

PNGrantType grant types

const (
    // PNReadEnabled Read Enabled. Applies to Subscribe, History, Presence, Objects
    PNReadEnabled PNGrantType = 1 + iota
    // PNWriteEnabled Write Enabled. Applies to Publish, Objects
    PNWriteEnabled
    // PNManageEnabled Manage Enabled. Applies to Channel-Groups, Objects
    PNManageEnabled
    // PNDeleteEnabled Delete Enabled. Applies to History, Objects
    PNDeleteEnabled
    // PNCreateEnabled Create Enabled. Applies to Objects
    PNCreateEnabled
)

type PNHistoryMessageActionTypeVal Uses

type PNHistoryMessageActionTypeVal struct {
    UUID            string `json:"uuid"`
    ActionTimetoken string `json:"actionTimetoken"`
}

PNHistoryMessageActionTypeVal is the struct used in the Fetch request that includes Message Actions

type PNHistoryMessageActionsTypeMap Uses

type PNHistoryMessageActionsTypeMap struct {
    ActionsTypeValues map[string][]PNHistoryMessageActionTypeVal `json:"-"`
}

PNHistoryMessageActionsTypeMap is the struct used in the Fetch request that includes Message Actions

type PNManageMembersResponse Uses

type PNManageMembersResponse struct {
    Data       []PNMembers `json:"data"`
    TotalCount int         `json:"totalCount"`
    Next       string      `json:"next"`
    Prev       string      `json:"prev"`
    // contains filtered or unexported fields
}

PNManageMembersResponse is the Objects API Response for ManageMembers

type PNManageMembershipsResponse Uses

type PNManageMembershipsResponse struct {
    Data       []PNMemberships `json:"data"`
    TotalCount int             `json:"totalCount"`
    Next       string          `json:"next"`
    Prev       string          `json:"prev"`
    // contains filtered or unexported fields
}

PNManageMembershipsResponse is the Objects API Response for ManageMemberships

type PNMembers Uses

type PNMembers struct {
    ID      string                 `json:"id"`
    User    PNUser                 `json:"user"`
    Created string                 `json:"created"`
    Updated string                 `json:"updated"`
    ETag    string                 `json:"eTag"`
    Custom  map[string]interface{} `json:"custom"`
}

PNMembers is the Objects API Members struct

type PNMembersInclude Uses

type PNMembersInclude int

PNMembersInclude is used as an enum to catgorize the available Members include types

const (
    // PNMembersCustom is the enum equivalent to the value `custom` available Members include types
    PNMembersCustom PNMembersInclude = 1 + iota
    // PNMembersUser is the enum equivalent to the value `user` available Members include types
    PNMembersUser
    // PNMembersUserCustom is the enum equivalent to the value `user.custom` available Members include types
    PNMembersUserCustom
)

func (PNMembersInclude) String Uses

func (s PNMembersInclude) String() string

type PNMembersInput Uses

type PNMembersInput struct {
    ID     string                 `json:"id"`
    Custom map[string]interface{} `json:"custom"`
}

PNMembersInput is the Objects API Members input struct used to add members

type PNMembersInputChangeSet Uses

type PNMembersInputChangeSet struct {
    Add    []PNMembersInput  `json:"add"`
    Update []PNMembersInput  `json:"update"`
    Remove []PNMembersRemove `json:"remove"`
}

PNMembersInputChangeSet is the Objects API input to add, remove or update members

type PNMembersRemove Uses

type PNMembersRemove struct {
    ID string `json:"id"`
}

PNMembersRemove is the Objects API Members struct used to remove members

type PNMembershipEvent Uses

type PNMembershipEvent struct {
    Event             PNObjectsEvent
    UserID            string
    SpaceID           string
    Description       string
    Timestamp         string
    Custom            map[string]interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNMembershipEvent is the Response for a Membership Event

type PNMemberships Uses

type PNMemberships struct {
    ID      string                 `json:"id"`
    Space   PNSpace                `json:"space"`
    Created string                 `json:"created"`
    Updated string                 `json:"updated"`
    ETag    string                 `json:"eTag"`
    Custom  map[string]interface{} `json:"custom"`
}

PNMemberships is the Objects API Memberships struct

type PNMembershipsInclude Uses

type PNMembershipsInclude int

PNMembershipsInclude is used as an enum to catgorize the available Memberships include types

const (
    // PNMembershipsCustom is the enum equivalent to the value `custom` available Memberships include types
    PNMembershipsCustom PNMembershipsInclude = 1 + iota
    // PNMembershipsSpace is the enum equivalent to the value `space` available Memberships include types
    PNMembershipsSpace
    // PNMembershipsSpaceCustom is the enum equivalent to the value `space.custom` available Memberships include types
    PNMembershipsSpaceCustom
)

func (PNMembershipsInclude) String Uses

func (s PNMembershipsInclude) String() string

type PNMembershipsInput Uses

type PNMembershipsInput struct {
    ID     string                 `json:"id"`
    Custom map[string]interface{} `json:"custom"`
}

PNMembershipsInput is the Objects API Memberships input struct used to add members

type PNMembershipsInputChangeSet Uses

type PNMembershipsInputChangeSet struct {
    Add    []PNMembershipsInput  `json:"add"`
    Update []PNMembershipsInput  `json:"update"`
    Remove []PNMembershipsRemove `json:"remove"`
}

PNMembershipsInputChangeSet is the Objects API input to add, remove or update membership

type PNMembershipsRemove Uses

type PNMembershipsRemove struct {
    ID string `json:"id"`
}

PNMembershipsRemove is the Objects API Memberships struct used to remove members

type PNMessage Uses

type PNMessage struct {
    Message           interface{}
    UserMetadata      interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
    Publisher         string
    Timetoken         int64
}

PNMessage is the Message Response for Subscribe

type PNMessageActionsEvent Uses

type PNMessageActionsEvent struct {
    Event             PNMessageActionsEventType
    Data              PNMessageActionsResponse
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNMessageActionsEvent is the Response for a Message Actions Event

type PNMessageActionsEventType Uses

type PNMessageActionsEventType string

PNMessageActionsEventType is used as an enum to catgorize the available Message Actions Event types

const (
    // PNMessageActionsAdded is the enum when the event of type `added` occurs
    PNMessageActionsAdded PNMessageActionsEventType = "added"
    // PNMessageActionsRemoved is the enum when the event of type `removed` occurs
    PNMessageActionsRemoved = "removed"
)

type PNMessageActionsResponse Uses

type PNMessageActionsResponse struct {
    ActionType       string `json:"type"`
    ActionValue      string `json:"value"`
    ActionTimetoken  string `json:"actionTimetoken"`
    MessageTimetoken string `json:"messageTimetoken"`
    UUID             string `json:"uuid"`
}

PNMessageActionsResponse Message Actions response.

type PNMessageType Uses

type PNMessageType int

PNMessageType is used as an enum to catgorize the Subscribe response.

const (
    // PNMessageTypeSignal is to identify Signal the Subscribe response
    PNMessageTypeSignal PNMessageType = 1 + iota
    // PNMessageTypeObjects is to identify Objects the Subscribe response
    PNMessageTypeObjects
    // PNMessageTypeMessageActions is to identify Actions the Subscribe response
    PNMessageTypeMessageActions
)

type PNObjectsEvent Uses

type PNObjectsEvent string

PNObjectsEvent is used as an enum to catgorize the available Object Events

type PNObjectsEventType Uses

type PNObjectsEventType string

PNObjectsEventType is used as an enum to catgorize the available Object Event types

type PNObjectsResponse Uses

type PNObjectsResponse struct {
    Event       PNObjectsEvent         `json:"event"` // enum value
    EventType   PNObjectsEventType     `json:"type"`  // enum value
    Name        string                 `json:"name"`
    UserID      string                 `json:"userId"`      // the user id if user related
    SpaceID     string                 `json:"spaceId"`     // the space id if space related
    Description string                 `json:"description"` // the description of what happened
    Timestamp   string                 `json:"timestamp"`   // the timetoken of the event
    ExternalID  string                 `json:"externalId"`
    ProfileURL  string                 `json:"profileUrl"`
    Email       string                 `json:"email"`
    Created     string                 `json:"created"`
    Updated     string                 `json:"updated"`
    ETag        string                 `json:"eTag"`
    Custom      map[string]interface{} `json:"custom"`
    Data        map[string]interface{} `json:"data"`
}

PNObjectsResponse is the Objects API collective Response struct of all methods.

type PNPAMEntityData Uses

type PNPAMEntityData struct {
    Name          string
    AuthKeys      map[string]*PNAccessManagerKeyData
    ReadEnabled   bool
    WriteEnabled  bool
    ManageEnabled bool
    DeleteEnabled bool
    TTL           int
}

PNPAMEntityData is the struct containing the access details of the channels.

type PNPresence Uses

type PNPresence struct {
    Event             string
    UUID              string
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
    Occupancy         int
    Timetoken         int64
    Timestamp         int64
    UserMetadata      map[string]interface{}
    State             interface{}
    Join              []string
    Leave             []string
    Timeout           []string
    HereNowRefresh    bool
}

PNPresence is the Message Response for Presence

type PNPushType Uses

type PNPushType int

PNPushType is used as an enum to catgorize the available Push Types

const (
    // PNPushTypeNone is used as an enum to for selecting `none` as the PNPushType
    PNPushTypeNone PNPushType = 1 + iota
    // PNPushTypeGCM is used as an enum to for selecting `GCM` as the PNPushType
    PNPushTypeGCM
    // PNPushTypeAPNS is used as an enum to for selecting `APNS` as the PNPushType
    PNPushTypeAPNS
    // PNPushTypeMPNS is used as an enum to for selecting `MPNS` as the PNPushType
    PNPushTypeMPNS
)

func (PNPushType) String Uses

func (p PNPushType) String() string

type PNRemoveMessageActionsResponse Uses

type PNRemoveMessageActionsResponse struct {
    Data interface{} `json:"data"`
    // contains filtered or unexported fields
}

PNRemoveMessageActionsResponse is the Objects API Response for create space

type PNResourceType Uses

type PNResourceType int

PNResourceType grant types

const (
    // PNChannels for channels
    PNChannels PNResourceType = 1 + iota
    // PNGroups for groups
    PNGroups
    // PNUsers for users
    PNUsers
    // PNSpaces for spaces
    PNSpaces
)

type PNSpace Uses

type PNSpace struct {
    ID          string                 `json:"id"`
    Name        string                 `json:"name"`
    Description string                 `json:"description"`
    Created     string                 `json:"created"`
    Updated     string                 `json:"updated"`
    ETag        string                 `json:"eTag"`
    Custom      map[string]interface{} `json:"custom"`
}

PNSpace is the Objects API space struct

type PNSpaceEvent Uses

type PNSpaceEvent struct {
    Event             PNObjectsEvent
    SpaceID           string
    Description       string
    Timestamp         string
    Name              string
    Created           string
    Updated           string
    ETag              string
    Custom            map[string]interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNSpaceEvent is the Response for a Space Event

type PNStatus Uses

type PNStatus struct {
    Category              StatusCategory
    Operation             OperationType
    ErrorData             error
    Error                 bool
    TLSEnabled            bool
    StatusCode            int
    UUID                  string
    AuthKey               string
    Origin                string
    ClientRequest         interface{} // Should be same for non-google environment
    AffectedChannels      []string
    AffectedChannelGroups []string
}

PNStatus is the status struct

type PNUpdateSpaceResponse Uses

type PNUpdateSpaceResponse struct {
    Data PNSpace `json:"data"`
    // contains filtered or unexported fields
}

PNUpdateSpaceResponse is the Objects API Response for Update Space

type PNUpdateUserResponse Uses

type PNUpdateUserResponse struct {
    Data PNUser `json:"data"`
    // contains filtered or unexported fields
}

PNUpdateUserResponse is the Objects API Response for Update user

type PNUser Uses

type PNUser struct {
    ID         string                 `json:"id"`
    Name       string                 `json:"name"`
    ExternalID string                 `json:"externalId"`
    ProfileURL string                 `json:"profileUrl"`
    Email      string                 `json:"email"`
    Created    string                 `json:"created"`
    Updated    string                 `json:"updated"`
    ETag       string                 `json:"eTag"`
    Custom     map[string]interface{} `json:"custom"`
}

PNUser is the Objects API user struct

type PNUserEvent Uses

type PNUserEvent struct {
    Event             PNObjectsEvent
    UserID            string
    Description       string
    Timestamp         string
    Name              string
    ExternalID        string
    ProfileURL        string
    Email             string
    Created           string
    Updated           string
    ETag              string
    Custom            map[string]interface{}
    SubscribedChannel string
    ActualChannel     string
    Channel           string
    Subscription      string
}

PNUserEvent is the Response for an User Event

type PNUserSpaceInclude Uses

type PNUserSpaceInclude int

PNUserSpaceInclude is used as an enum to catgorize the available User and Space include types

const (
    // PNUserSpaceCustom is the enum equivalent to the value `custom` available User and Space include types
    PNUserSpaceCustom PNUserSpaceInclude = 1 + iota
)

func (PNUserSpaceInclude) String Uses

func (s PNUserSpaceInclude) String() string

type PermissionsBody Uses

type PermissionsBody struct {
    Resources GrantResources         `json:"resources"`
    Patterns  GrantResources         `json:"patterns"`
    Meta      map[string]interface{} `json:"meta"`
}

PermissionsBody is the struct used to decode the server response

type PubNub Uses

type PubNub struct {
    sync.RWMutex

    Config *Config
    // contains filtered or unexported fields
}

PubNub No server connection will be established when you create a new PubNub object. To establish a new connection use Subscribe() function of PubNub type.

func NewPubNub Uses

func NewPubNub(pnconf *Config) *PubNub

func NewPubNubDemo Uses

func NewPubNubDemo() *PubNub

func (*PubNub) AddChannelToChannelGroup Uses

func (pn *PubNub) AddChannelToChannelGroup() *addChannelToChannelGroupBuilder

func (*PubNub) AddChannelToChannelGroupWithContext Uses

func (pn *PubNub) AddChannelToChannelGroupWithContext(
    ctx Context) *addChannelToChannelGroupBuilder

func (*PubNub) AddListener Uses

func (pn *PubNub) AddListener(listener *Listener)

func (*PubNub) AddMessageAction Uses

func (pn *PubNub) AddMessageAction() *addMessageActionsBuilder

func (*PubNub) AddMessageActionWithContext Uses

func (pn *PubNub) AddMessageActionWithContext(ctx Context) *addMessageActionsBuilder

func (*PubNub) AddPushNotificationsOnChannels Uses

func (pn *PubNub) AddPushNotificationsOnChannels() *addPushNotificationsOnChannelsBuilder

func (*PubNub) AddPushNotificationsOnChannelsWithContext Uses

func (pn *PubNub) AddPushNotificationsOnChannelsWithContext(
    ctx Context) *addPushNotificationsOnChannelsBuilder

func (*PubNub) CreateSpace Uses

func (pn *PubNub) CreateSpace() *createSpaceBuilder

func (*PubNub) CreateSpaceWithContext Uses

func (pn *PubNub) CreateSpaceWithContext(ctx Context) *createSpaceBuilder

func (*PubNub) CreateUser Uses

func (pn *PubNub) CreateUser() *createUserBuilder

func (*PubNub) CreateUserWithContext Uses

func (pn *PubNub) CreateUserWithContext(ctx Context) *createUserBuilder

func (*PubNub) DeleteChannelGroup Uses

func (pn *PubNub) DeleteChannelGroup() *deleteChannelGroupBuilder

func (*PubNub) DeleteChannelGroupWithContext Uses

func (pn *PubNub) DeleteChannelGroupWithContext(
    ctx Context) *deleteChannelGroupBuilder

func (*PubNub) DeleteMessages Uses

func (pn *PubNub) DeleteMessages() *historyDeleteBuilder

func (*PubNub) DeleteMessagesWithContext Uses

func (pn *PubNub) DeleteMessagesWithContext(ctx Context) *historyDeleteBuilder

func (*PubNub) DeleteSpace Uses

func (pn *PubNub) DeleteSpace() *deleteSpaceBuilder

func (*PubNub) DeleteSpaceWithContext Uses

func (pn *PubNub) DeleteSpaceWithContext(ctx Context) *deleteSpaceBuilder

func (*PubNub) DeleteUser Uses

func (pn *PubNub) DeleteUser() *deleteUserBuilder

func (*PubNub) DeleteUserWithContext Uses

func (pn *PubNub) DeleteUserWithContext(ctx Context) *deleteUserBuilder

func (*PubNub) Destroy Uses

func (pn *PubNub) Destroy()

func (*PubNub) Fetch Uses

func (pn *PubNub) Fetch() *fetchBuilder

func (*PubNub) FetchWithContext Uses

func (pn *PubNub) FetchWithContext(ctx Context) *fetchBuilder

func (*PubNub) Fire Uses

func (pn *PubNub) Fire() *fireBuilder

func (*PubNub) FireWithContext Uses

func (pn *PubNub) FireWithContext(ctx Context) *fireBuilder

func (*PubNub) GetClient Uses

func (pn *PubNub) GetClient() *http.Client

GetClient Get a client for transactional requests

func (*PubNub) GetListeners Uses

func (pn *PubNub) GetListeners() map[*Listener]bool

func (*PubNub) GetMembers Uses

func (pn *PubNub) GetMembers() *getMembersBuilder

func (*PubNub) GetMembersWithContext Uses

func (pn *PubNub) GetMembersWithContext(ctx Context) *getMembersBuilder

func (*PubNub) GetMemberships Uses

func (pn *PubNub) GetMemberships() *getMembershipsBuilder

func (*PubNub) GetMembershipsWithContext Uses

func (pn *PubNub) GetMembershipsWithContext(ctx Context) *getMembershipsBuilder

func (*PubNub) GetMessageActions Uses

func (pn *PubNub) GetMessageActions() *getMessageActionsBuilder

func (*PubNub) GetMessageActionsWithContext Uses

func (pn *PubNub) GetMessageActionsWithContext(ctx Context) *getMessageActionsBuilder

func (*PubNub) GetSpace Uses

func (pn *PubNub) GetSpace() *getSpaceBuilder

func (*PubNub) GetSpaceWithContext Uses

func (pn *PubNub) GetSpaceWithContext(ctx Context) *getSpaceBuilder

func (*PubNub) GetSpaces Uses

func (pn *PubNub) GetSpaces() *getSpacesBuilder

func (*PubNub) GetSpacesWithContext Uses

func (pn *PubNub) GetSpacesWithContext(ctx Context) *getSpacesBuilder

func (*PubNub) GetState Uses

func (pn *PubNub) GetState() *getStateBuilder

func (*PubNub) GetStateWithContext Uses

func (pn *PubNub) GetStateWithContext(ctx Context) *getStateBuilder

func (*PubNub) GetSubscribeClient Uses

func (pn *PubNub) GetSubscribeClient() *http.Client

GetSubscribeClient Get a client for transactional requests

func (*PubNub) GetSubscribedChannels Uses

func (pn *PubNub) GetSubscribedChannels() []string

func (*PubNub) GetSubscribedGroups Uses

func (pn *PubNub) GetSubscribedGroups() []string

func (*PubNub) GetToken Uses

func (pn *PubNub) GetToken(resourceId string, resourceType PNResourceType) string

func (*PubNub) GetTokens Uses

func (pn *PubNub) GetTokens() GrantResourcesWithPermissions

func (*PubNub) GetTokensByResource Uses

func (pn *PubNub) GetTokensByResource(resourceType PNResourceType) GrantResourcesWithPermissions

func (*PubNub) GetUser Uses

func (pn *PubNub) GetUser() *getUserBuilder

func (*PubNub) GetUserWithContext Uses

func (pn *PubNub) GetUserWithContext(ctx Context) *getUserBuilder

func (*PubNub) GetUsers Uses

func (pn *PubNub) GetUsers() *getUsersBuilder

func (*PubNub) GetUsersWithContext Uses

func (pn *PubNub) GetUsersWithContext(ctx Context) *getUsersBuilder

func (*PubNub) Grant Uses

func (pn *PubNub) Grant() *grantBuilder

func (*PubNub) GrantToken Uses

func (pn *PubNub) GrantToken() *grantTokenBuilder

func (*PubNub) GrantTokenWithContext Uses

func (pn *PubNub) GrantTokenWithContext(ctx Context) *grantTokenBuilder

func (*PubNub) GrantWithContext Uses

func (pn *PubNub) GrantWithContext(ctx Context) *grantBuilder

func (*PubNub) HereNow Uses

func (pn *PubNub) HereNow() *hereNowBuilder

func (*PubNub) HereNowWithContext Uses

func (pn *PubNub) HereNowWithContext(ctx Context) *hereNowBuilder

func (*PubNub) History Uses

func (pn *PubNub) History() *historyBuilder

func (*PubNub) HistoryWithContext Uses

func (pn *PubNub) HistoryWithContext(ctx Context) *historyBuilder

func (*PubNub) Leave Uses

func (pn *PubNub) Leave() *leaveBuilder

func (*PubNub) LeaveWithContext Uses

func (pn *PubNub) LeaveWithContext(ctx Context) *leaveBuilder

func (*PubNub) ListChannelsInChannelGroup Uses

func (pn *PubNub) ListChannelsInChannelGroup() *allChannelGroupBuilder

func (*PubNub) ListChannelsInChannelGroupWithContext Uses

func (pn *PubNub) ListChannelsInChannelGroupWithContext(
    ctx Context) *allChannelGroupBuilder

func (*PubNub) ListPushProvisions Uses

func (pn *PubNub) ListPushProvisions() *listPushProvisionsRequestBuilder

func (*PubNub) ListPushProvisionsWithContext Uses

func (pn *PubNub) ListPushProvisionsWithContext(
    ctx Context) *listPushProvisionsRequestBuilder

func (*PubNub) ManageMembers Uses

func (pn *PubNub) ManageMembers() *manageMembersBuilder

func (*PubNub) ManageMembersWithContext Uses

func (pn *PubNub) ManageMembersWithContext(ctx Context) *manageMembersBuilder

func (*PubNub) ManageMemberships Uses

func (pn *PubNub) ManageMemberships() *manageMembershipsBuilder

func (*PubNub) ManageMembershipsWithContext Uses

func (pn *PubNub) ManageMembershipsWithContext(ctx Context) *manageMembershipsBuilder

func (*PubNub) MessageCounts Uses

func (pn *PubNub) MessageCounts() *messageCountsBuilder

func (*PubNub) MessageCountsWithContext Uses

func (pn *PubNub) MessageCountsWithContext(ctx Context) *messageCountsBuilder

func (*PubNub) Presence Uses

func (pn *PubNub) Presence() *presenceBuilder

func (*PubNub) PresenceWithContext Uses

func (pn *PubNub) PresenceWithContext(ctx Context) *presenceBuilder

func (*PubNub) Publish Uses

func (pn *PubNub) Publish() *publishBuilder

func (*PubNub) PublishWithContext Uses

func (pn *PubNub) PublishWithContext(ctx Context) *publishBuilder

func (*PubNub) RemoveAllPushNotifications Uses

func (pn *PubNub) RemoveAllPushNotifications() *removeAllPushChannelsForDeviceBuilder

func (*PubNub) RemoveAllPushNotificationsWithContext Uses

func (pn *PubNub) RemoveAllPushNotificationsWithContext(
    ctx Context) *removeAllPushChannelsForDeviceBuilder

func (*PubNub) RemoveChannelFromChannelGroup Uses

func (pn *PubNub) RemoveChannelFromChannelGroup() *removeChannelFromChannelGroupBuilder

func (*PubNub) RemoveChannelFromChannelGroupWithContext Uses

func (pn *PubNub) RemoveChannelFromChannelGroupWithContext(
    ctx Context) *removeChannelFromChannelGroupBuilder

func (*PubNub) RemoveListener Uses

func (pn *PubNub) RemoveListener(listener *Listener)

func (*PubNub) RemoveMessageAction Uses

func (pn *PubNub) RemoveMessageAction() *removeMessageActionsBuilder

func (*PubNub) RemoveMessageActionWithContext Uses

func (pn *PubNub) RemoveMessageActionWithContext(ctx Context) *removeMessageActionsBuilder

func (*PubNub) RemovePushNotificationsFromChannels Uses

func (pn *PubNub) RemovePushNotificationsFromChannels() *removeChannelsFromPushBuilder

func (*PubNub) RemovePushNotificationsFromChannelsWithContext Uses

func (pn *PubNub) RemovePushNotificationsFromChannelsWithContext(
    ctx Context) *removeChannelsFromPushBuilder

func (*PubNub) ResetTokenManager Uses

func (pn *PubNub) ResetTokenManager()

func (*PubNub) SetClient Uses

func (pn *PubNub) SetClient(c *http.Client)

SetClient Set a client for transactional requests

func (*PubNub) SetState Uses

func (pn *PubNub) SetState() *setStateBuilder

func (*PubNub) SetStateWithContext Uses

func (pn *PubNub) SetStateWithContext(ctx Context) *setStateBuilder

func (*PubNub) SetSubscribeClient Uses

func (pn *PubNub) SetSubscribeClient(client *http.Client)

func (*PubNub) SetToken Uses

func (pn *PubNub) SetToken(token string)

func (*PubNub) SetTokens Uses

func (pn *PubNub) SetTokens(tokens []string)

func (*PubNub) Signal Uses

func (pn *PubNub) Signal() *signalBuilder

func (*PubNub) SignalWithContext Uses

func (pn *PubNub) SignalWithContext(ctx Context) *signalBuilder

func (*PubNub) Subscribe Uses

func (pn *PubNub) Subscribe() *subscribeBuilder

func (*PubNub) Time Uses

func (pn *PubNub) Time() *timeBuilder

func (*PubNub) TimeWithContext Uses

func (pn *PubNub) TimeWithContext(ctx Context) *timeBuilder

func (*PubNub) Unsubscribe Uses

func (pn *PubNub) Unsubscribe() *unsubscribeBuilder

func (*PubNub) UnsubscribeAll Uses

func (pn *PubNub) UnsubscribeAll()

func (*PubNub) UpdateSpace Uses

func (pn *PubNub) UpdateSpace() *updateSpaceBuilder

func (*PubNub) UpdateSpaceWithContext Uses

func (pn *PubNub) UpdateSpaceWithContext(ctx Context) *updateSpaceBuilder

func (*PubNub) UpdateUser Uses

func (pn *PubNub) UpdateUser() *updateUserBuilder

func (*PubNub) UpdateUserWithContext Uses

func (pn *PubNub) UpdateUserWithContext(ctx Context) *updateUserBuilder

func (*PubNub) WhereNow Uses

func (pn *PubNub) WhereNow() *whereNowBuilder

func (*PubNub) WhereNowWithContext Uses

func (pn *PubNub) WhereNowWithContext(ctx Context) *whereNowBuilder

type PublishResponse Uses

type PublishResponse struct {
    Timestamp int64
}

PublishResponse is the response after the execution on Publish and Fire operations.

type ReconnectionManager Uses

type ReconnectionManager struct {
    sync.RWMutex

    ExponentialMultiplier       int
    FailedCalls                 int
    Milliseconds                int
    OnReconnection              func()
    OnMaxReconnectionExhaustion func()
    DoneTimer                   chan bool
    // contains filtered or unexported fields
}

ReconnectionManager is used to store the properties required in running the Reconnection Manager.

func (*ReconnectionManager) HandleOnMaxReconnectionExhaustion Uses

func (m *ReconnectionManager) HandleOnMaxReconnectionExhaustion(handler func())

HandleOnMaxReconnectionExhaustion sets the handler that will be called when the max reconnection attempts are exhausted.

func (*ReconnectionManager) HandleReconnection Uses

func (m *ReconnectionManager) HandleReconnection(handler func())

HandleReconnection sets the handler that will be called when the network reconnects after a disconnect.

type ReconnectionPolicy Uses

type ReconnectionPolicy int

ReconnectionPolicy is used as an enum to catgorize the reconnection policies

const (
    // PNNonePolicy is to be used when selecting the no Reconnection Policy
    // ReconnectionPolicy is set in the config.
    PNNonePolicy ReconnectionPolicy = 1 + iota
    // PNLinearPolicy is to be used when selecting the Linear Reconnection Policy
    // ReconnectionPolicy is set in the config.
    PNLinearPolicy
    // PNExponentialPolicy is to be used when selecting the Exponential Reconnection Policy
    // ReconnectionPolicy is set in the config.
    PNExponentialPolicy
)

type RemoveAllPushChannelsForDeviceResponse Uses

type RemoveAllPushChannelsForDeviceResponse struct{}

RemoveAllPushChannelsForDeviceResponse is the struct returned when the Execute function of RemoveAllPushNotifications is called.

type RemoveChannelFromChannelGroupResponse Uses

type RemoveChannelFromChannelGroupResponse struct {
}

RemoveChannelFromChannelGroupResponse is the struct returned when the Execute function of RemoveChannelFromChannelGroup is called.

type RemoveChannelsFromPushResponse Uses

type RemoveChannelsFromPushResponse struct{}

RemoveChannelsFromPushResponse is the struct returned when the Execute function of RemovePushNotificationsFromChannels is called.

type RequestWorkers Uses

type RequestWorkers struct {
    Workers    chan chan *JobQItem
    MaxWorkers int
    Sem        chan bool
}

func (*RequestWorkers) Close Uses

func (p *RequestWorkers) Close()

Close closes the workers

func (*RequestWorkers) ReadQueue Uses

func (p *RequestWorkers) ReadQueue(pubnub *PubNub)

ReadQueue reads the queue and passes on the job to the workers

func (*RequestWorkers) Start Uses

func (p *RequestWorkers) Start(pubnub *PubNub, ctx Context)

Start starts the workers

type ResourcePermissions Uses

type ResourcePermissions struct {
    Read   bool
    Write  bool
    Manage bool
    Delete bool
    Create bool
}

ResourcePermissions contains all the applicable perms for bitmask translations.

type ResponseInfo Uses

type ResponseInfo struct {
    Operation        OperationType
    StatusCode       int
    TLSEnabled       bool
    Origin           string
    UUID             string
    AuthKey          string
    OriginalResponse *http.Response
}

ResponseInfo is used to store the properties in the response of an request.

type SetStateResponse Uses

type SetStateResponse struct {
    State   interface{}
    Message string
}

SetStateResponse is the response returned when the Execute function of SetState is called.

type SignalResponse Uses

type SignalResponse struct {
    Timestamp int64
}

SignalResponse is the response to Signal request.

type StateManager Uses

type StateManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

StateManager is used to store the subscriptions types

type StateOperation Uses

type StateOperation struct {
    // contains filtered or unexported fields
}

type StatusCategory Uses

type StatusCategory int

StatusCategory is used as an enum to catgorize the various status events in the APIs lifecycle

const (
    // PNUnknownCategory as the StatusCategory means an unknown status category event occurred.
    PNUnknownCategory StatusCategory = 1 + iota
    // PNTimeoutCategory as the StatusCategory means the request timeout has reached.
    PNTimeoutCategory
    // PNConnectedCategory as the StatusCategory means the channel is subscribed to receive messages.
    PNConnectedCategory
    // PNDisconnectedCategory as the StatusCategory means a disconnection occurred due to network issues.
    PNDisconnectedCategory
    // PNCancelledCategory as the StatusCategory means the context was cancelled.
    PNCancelledCategory
    // PNLoopStopCategory as the StatusCategory means the subscribe loop was stopped.
    PNLoopStopCategory
    // PNAcknowledgmentCategory as the StatusCategory is the Acknowledgement of an operation (like Unsubscribe).
    PNAcknowledgmentCategory
    // PNBadRequestCategory as the StatusCategory means the request was malformed.
    PNBadRequestCategory
    // PNAccessDeniedCategory as the StatusCategory means that PAM is enabled and the channel is not granted R/W access.
    PNAccessDeniedCategory
    // PNNoStubMatchedCategory as the StatusCategory means an unknown status category event occurred.
    PNNoStubMatchedCategory
    // PNReconnectedCategory as the StatusCategory means that the network was reconnected (after a disconnection).
    // Applicable on for PNLinearPolicy and PNExponentialPolicy.
    PNReconnectedCategory
    // PNReconnectionAttemptsExhausted as the StatusCategory means that the reconnection attempts
    // to reconnect to the network were exhausted. All channels would be unsubscribed at this point.
    // Applicable on for PNLinearPolicy and PNExponentialPolicy.
    // Reconnection attempts are set in the config: MaximumReconnectionRetries.
    PNReconnectionAttemptsExhausted
    // PNRequestMessageCountExceededCategory is fired when the MessageQueueOverflowCount limit is exceeded by the number of messages received in a single subscribe request
    PNRequestMessageCountExceededCategory
)

func (StatusCategory) String Uses

func (c StatusCategory) String() string

type StatusResponse Uses

type StatusResponse struct {
    Error                 error
    Category              StatusCategory
    Operation             OperationType
    StatusCode            int
    TLSEnabled            bool
    UUID                  string
    AuthKey               string
    Origin                string
    OriginalResponse      string
    Request               string
    AffectedChannels      []string
    AffectedChannelGroups []string
}

StatusResponse is used to store the usable properties in the response of an request.

type SubscribeOperation Uses

type SubscribeOperation struct {
    Channels         []string
    ChannelGroups    []string
    PresenceEnabled  bool
    Timetoken        int64
    FilterExpression string
    State            map[string]interface{}
    QueryParam       map[string]string
}

SubscribeOperation

type SubscriptionItem Uses

type SubscriptionItem struct {
    // contains filtered or unexported fields
}

SubscriptionItem is used to store the subscription item's properties.

type SubscriptionManager Uses

type SubscriptionManager struct {
    sync.RWMutex
    // contains filtered or unexported fields
}

Heartbeat: - Heartbeat is enabled by default. - Default presence timeout is 0 seconds. - The first Heartbeat request will be scheduled to be executed after getHeartbeatInterval() seconds (default - 149).

func (*SubscriptionManager) AddListener Uses

func (m *SubscriptionManager) AddListener(listener *Listener)

func (*SubscriptionManager) Destroy Uses

func (m *SubscriptionManager) Destroy()

func (*SubscriptionManager) Disconnect Uses

func (m *SubscriptionManager) Disconnect()

func (*SubscriptionManager) GetListeners Uses

func (m *SubscriptionManager) GetListeners() map[*Listener]bool

func (*SubscriptionManager) RemoveAllListeners Uses

func (m *SubscriptionManager) RemoveAllListeners()

func (*SubscriptionManager) RemoveListener Uses

func (m *SubscriptionManager) RemoveListener(listener *Listener)

type TelemetryManager Uses

type TelemetryManager struct {
    sync.RWMutex

    IsRunning bool
    // contains filtered or unexported fields
}

TelemetryManager is the struct to store the Telemetry details.

func (*TelemetryManager) CleanUpTelemetryData Uses

func (m *TelemetryManager) CleanUpTelemetryData()

CleanUpTelemetryData cleans up telemetry data of all operations.

func (*TelemetryManager) OperationLatency Uses

func (m *TelemetryManager) OperationLatency() map[string]string

OperationLatency returns a map of the stored latencies by operation.

func (*TelemetryManager) StoreLatency Uses

func (m *TelemetryManager) StoreLatency(latency float64, t OperationType)

StoreLatency stores the latency values of the different operations.

type TimeResponse Uses

type TimeResponse struct {
    Timetoken int64
}

TimeResponse is the response when Time call is executed.

type TokenManager Uses

type TokenManager struct {
    sync.RWMutex
    Tokens GrantResourcesWithPermissions
    // contains filtered or unexported fields
}

TokenManager struct is used to for token manager operations

func (*TokenManager) CleanUp Uses

func (m *TokenManager) CleanUp()

CleanUp resets the token manager

func (*TokenManager) GetAllTokens Uses

func (m *TokenManager) GetAllTokens() GrantResourcesWithPermissions

GetAllTokens retrieves all the tokens from the token manager

func (*TokenManager) GetToken Uses

func (m *TokenManager) GetToken(resourceID string, resourceType PNResourceType) string

GetToken first match for direct ids, if no match found use the first token from pattern match ignoring the regex (by design).

func (*TokenManager) GetTokensByResource Uses

func (m *TokenManager) GetTokensByResource(resourceType PNResourceType) GrantResourcesWithPermissions

GetTokensByResource retrieves the tokens by PNResourceType from the token manager

func (*TokenManager) SetAuthParan Uses

func (m *TokenManager) SetAuthParan(q *url.Values, resourceID string, resourceType PNResourceType)

SetAuthParan sets the auth param in the requests by retrieving the corresponding tokens from the token manager

func (*TokenManager) StoreToken Uses

func (m *TokenManager) StoreToken(token string)

StoreToken Aceepts PAMv3 token format token to store in the token manager

func (*TokenManager) StoreTokens Uses

func (m *TokenManager) StoreTokens(token []string)

StoreTokens Aceepts PAMv3 token format tokens to store in the token manager

type UnsubscribeOperation Uses

type UnsubscribeOperation struct {
    Channels      []string
    ChannelGroups []string
    QueryParam    map[string]string
}

type UpdateSpaceBody Uses

type UpdateSpaceBody struct {
    ID          string                 `json:"id"`
    Name        string                 `json:"name"`
    Description string                 `json:"description"`
    Custom      map[string]interface{} `json:"custom"`
}

UpdateSpaceBody is the input to update space

type UpdateUserBody Uses

type UpdateUserBody struct {
    ID         string                 `json:"id"`
    Name       string                 `json:"name"`
    ExternalID string                 `json:"externalId"`
    ProfileURL string                 `json:"profileUrl"`
    Email      string                 `json:"email"`
    Custom     map[string]interface{} `json:"custom"`
}

UpdateUserBody is the input to update user

type UserSpacePermissions Uses

type UserSpacePermissions struct {
    Read   bool
    Write  bool
    Manage bool
    Delete bool
    Create bool
}

UserSpacePermissions contains all the acceptable perms for Users and Spaces

type UserSpacePermissionsWithToken Uses

type UserSpacePermissionsWithToken struct {
    Permissions  UserSpacePermissions
    BitMaskPerms int64
    Token        string
    Timestamp    int64
    TTL          int
}

UserSpacePermissionsWithToken is used for users/spaces resource type permissions

type WhereNowResponse Uses

type WhereNowResponse struct {
    Channels []string
}

WhereNowResponse is the response of the WhereNow request. Contains channels info.

type Worker Uses

type Worker struct {
    Workers    chan chan *JobQItem
    JobChannel chan *JobQItem
    // contains filtered or unexported fields
}

func (Worker) Process Uses

func (pw Worker) Process(pubnub *PubNub)

Process runs a goroutine for the worker

Directories

PathSynopsis
pnerr
tests/e2e
tests/helpers
tests/manual
tests/stubs
utils

Package pubnub imports 24 packages (graph) and is imported by 4 packages. Updated 2019-10-16. Refresh now. Tools for package owners.