- Added library name and version in HTTP Header (PR #62)
- Changed: allow larger (10KB -> 20KB) requests as we sometimes do on dedicated clusters (PR #66)
- Added
go.mod
for managing the library as a Go module - Changed
github.com/stretchr/testify/assert
with a stablegopkg.in/stretchr/testify.v1/assert
- Added EncryptionMasterKeyBase64 parameter
- Deprecated EncryptionMasterKey parameter
- This release modifies the entire repo to respect the go linter. This is a significant API breaking change and will likely require you to correct references to the names that were changed in your code. All future releases will respect the linter. A summary of the changes:
- Rename AppId > AppID
- Rename UserId > UserID
- Rename SocketId > SocketID
- Rename Id > ID
- Rename HttpClient > HTTPClient
- Improved comments and tabbing
- This release removes the
*BufferedEvents
return from calls totrigger
is it never did anything. Our documentation elsewhere conflicted with this, and it made the library more complex than it needed to be, so we removed it.
- This release removes support for Push Notifications. Check out https://pusher.com/beams for our new, improved Push Notification offering!
- This release adds support for end to end encrypted channels, a new feature for Channels. Read more in our docs.
- Add support for batch events
- Introduce a
Cluster
option for the Pusher initializer.
- Users can pass in a
http.Client
instance to the Pusher initializer. They can configure this instance directly to have specific options e.g. timeouts. - Therefore, the
Timeout
field onpusher.Client
is deprecated. HttpClient()
function is no longer public. HTTP Client configuration is now done on theHttpClient
property ofpusher.Client
. Read here for more details.- If no
HttpClient
is specified, the library creates one with a default timeout of 5 seconds. - The library is now GAE compatible. Read here for more details.
- Socket_ids are now validated upon Trigger*Exclusive and channel authentication.
- Webhook validation uses hmac.Equals to guard against timing attacks.
- A HTTP client is shared between requests to allow configuration. If none is set by the user, the library supplies a default. Allows for pipelining or to change the transport.
- Instantiation of client from credentials, URL or environment variables.
- User can trigger Pusher events on single channels, multiple channels, and exclude recipients
- Authentication of private and presence channels
- Pusher webhook validation
- Querying application state
- Cluster configuration, HTTPS support, timeout configuration.