Constructor #
This is the main entry point to communicate with Kuzzle. Each instance represents a connection to Kuzzle with specific options.
This interface implements the KuzzleEventEmitter interface
Arguments #
NewKuzzle(protocol connection.Connection) (*Kuzzle, error)
Argument | Type | Description |
---|---|---|
protocol | connection.Connection | The protocol used by the SDK instance |
protocol #
A Protocol is a structure implementing the connection.Connection
interface. The available protocols are:
websocket.Websocket
The protocol must be instantiated and passed to the constructor. It takes the following arguments:
Argument | Type | Description | Required |
---|---|---|---|
host | string | Kuzzle hostname to connect to | yes |
options | types.Options | Kuzzle connection configuration | yes |
The options
parameter of the protocol constructor has the following properties. You can use standard getter/setter to use these properties.
Option | Type | Description | Default | Required |
---|---|---|---|---|
autoQueue | bool | Automatically queue all requests during offline mode | false | no |
autoReconnect | bool | Automatically reconnect after a connection loss | true | no |
autoReplay | bool | Automatically replay queued requests on a reconnected event | false | no |
autoResubscribe | bool | Automatically renew all subscriptions on a reconnected event | true | no |
offlineMode | int | Offline mode configuration. types.Manual or types.Auto | types.Manual | no |
port | int | Target Kuzzle port | 7512 | no |
queueTTL | int | Time a queued request is kept during offline mode, in milliseconds | 120000 | no |
queueMaxSize | int | Number of maximum requests kept during offline mode | 500 | no |
replayInterval | Duration | Delay between each replayed requests, in milliseconds | 10 | no |
reconnectionDelay | Duration | number of milliseconds between reconnection attempts | 1000 | no |
sslConnection | bool | Switch Kuzzle connection to SSL mode | false | no |
volatile | VolatileData | Common volatile data, will be sent to all future requests | - | no |
Getter & Setter #
These properties of the Kuzzle struct can be writable. For example, you can read the volatile
property via getVolatile()
and set it via setVolatile()
.
Property name | Type | Description | Availability |
---|---|---|---|
autoQueue | bool | Automatically queue all requests during offline mode | Get/Set |
autoReconnect | bool | Automatically reconnect after a connection loss | Get |
autoReplay | bool | Automatically replay queued requests on a reconnected event | Get/Set |
autoResubscribe | bool | Automatically renew all subscriptions on a reconnected event | Get/Set |
host | string | Target Kuzzle host | Get |
port | int | Target Kuzzle port | Get |
jwt | string | Token used in requests for authentication. | Get/Set |
offlineQueue | QueryObject | Contains the queued requests during offline mode | Get |
offlineQueueLoader | OfflineQueueLoader | Called before dequeuing requests after exiting offline mode, to add items at the beginning of the offline queue | Get/Set |
queueFilter | QueueFilter | Called during offline mode. Takes a request object as arguments and returns a bool, indicating if a request can be queued | Get/Set |
queueMaxSize | int | Number of maximum requests kept during offline mode | Get/Set |
queueTTL | Duration | Time a queued request is kept during offline mode, in milliseconds | Get/Set |
replayInterval | Duration | Delay between each replayed requests | Get/Set |
reconnectionDelay | Duration | Number of milliseconds between reconnection attempts | Get |
sslConnection | bool | Connect to Kuzzle using SSL | Get |
volatile | VolatileData | Common volatile data, will be sent to all future requests | Get/Set |
Notes:
- multiple methods allow passing specific
volatile
data. Thesevolatile
data will be merged with the global Kuzzlevolatile
object when sending the request, with the request specificvolatile
taking priority over the global ones. - the
queueFilter
property is a function taking aQueryObject
as an argument. This object is the request sent to Kuzzle, following the Kuzzle API format - if
queueTTL
is set to0
, requests are kept indefinitely - The offline buffer acts like a first-in first-out (FIFO) queue, meaning that if the
queueMaxSize
limit is reached, older requests are discarded to make room for new requests - if
queueMaxSize
is set to0
, an unlimited number of requests is kept until the buffer is flushed - the
offlineQueueLoader
must be set with a function, taking no argument, and returning an array of objects containing aquery
member with a Kuzzle query to be replayed, and an optionalcb
member with the corresponding callback to invoke with the query result - updates to
autoReconnect
,reconnectionDelay
andsslConnection
properties will only take effect on nextconnect
call
Return #
A Kuzzle
struct and an error struct. The error
struct is nil if everything was ok.
Usage #
In a first step, you have to create a new connection.Connection
and pass it to the constructor. By now the only connection available is websocket.Websocket
.
copts := types.NewOptions()
copts.SetPort(7512)
copts.SetAutoResubscribe(false)
conn := websocket.NewWebSocket("kuzzle", copts)
k, _ := kuzzle.NewKuzzle(conn, nil)