Ably now supports the Server-Sent Events (SSE) protocol

As of today, anyone building on Ably can seamlessly stream data over the Server-Sent Events (SSE) protocol using the Ably Adapter.

SSE becomes the fifth supported protocol for the Ably Adapter, with existing support for MQTT, STOMP, AMQP, and other proprietary realtime protocols. Note that this is a beta release but fully operational and production-ready.

pull-protocols-panel.png

What is SSE?

It’s a server push technology enabling a browser or device to receive automatic updates from a server via HTTP connection. With SSE, servers initiate data transmission towards clients once an initial client connection has been established.

It’s commonly used to send message updates, new events, or continuous data streams to a browser client. It’s designed to enhance native, cross-browser streaming through a JavaScript API called EventSource. Using this API, a client can easily receive an event stream by sending a request to a particular URL endpoint.

For the technical detail and to jump right in, check out the:

As always, feel free to contact us about how you can best use SSE and Ably.

Ably Cocoa Client Library SDK release 1.1.6

Important changes

Fixed bugs:

  • Lexical or Preprocessor Issue: 'SRWebSocket.h' file not found #840
  • KSCrashAblyFork ksthread_getQueueName #846

Breaking changes

We changed the name of our SocketRocket framework to SocketRocketAblyFork. In case you're using the library with Carthage, then you need to update the path of the SocketRocket framework on your application targets’ Build Phases settings tab:

59460334-c3634b80-8e16-11e9-81b3-de2378b2f384.png

Podfile

pod 'Ably', '1.1.6'

Cartfile

github "ably/ably-cocoa" == 1.1.6

Objective-C

#import <Ably/Ably.h>

Swift

import Ably

Here's the complete list of changes.

Ably Cocoa Client Library SDK release 1.1.5

Implemented enhancements:

  • Swift 5 / Xcode 10.2 #838

Fixed bugs:

  • Issue reported in iOS push tutorial #850

Please see the CHANGELOG for a complete list of changes.


Podfile:

pod 'Ably', '1.1.5'

Cartfile:

github "ably/ably-cocoa" == 1.1.5

Objective-C:

#import <Ably/Ably.h>

Swift:

import Ably

Any questions, get in touch.

Ably .NET Client Library SDK release 1.1.6 stable and 1.1.7 beta

.NET 1.1.6 stable release

This release implements Transient Publishing.

What is transient publishing?

When attempting to only publish to a client, it is possible to publish without attaching to the channel. This can be beneficial if you intend to publish into many channels, removing the need to attach to a channel each time you wish to publish. Additionally, it avoids the client subscribing to messages, avoiding messages being sent to it redundantly.

Please see the CHANGELOG for a complete list of changes.


.NET 1.1.7 beta release

  • This release introduces experimental network and power state detection.
  • This release has been well tested on Windows but less so on other platforms and the implementation may change in the future.

This is beta software, please use the 1.1.6 version if you want the stable release!

Please see the CHANGELOG for full details of this release.

Any questions, get in touch.

Ably Ruby Client Library SDK release 1.1.1

Transient publishing is now enabled in 1.1.1, and a few fixes to bugs relating to broken publishing with recovered connections or resuming connections that fail.

Release and full changelog.

Any questions, get in touch.

Ably .NET Client Library SDK 1.1.2 release

This is a minor bug fix release to resolve a breaking change when fetching History.

Previously the History method expected a parameter of HistoryRequestParams, this was refactored to improve code reuse and became PaginatedRequestParams.

This release adds back HistoryRequestParams as a subclass of PaginatedRequestParams to make the transition from 0.8 to 1.1 a little smoother for those that are upgrading.

More details of this change can be seen in the this PR #323.

See the CHANGELOG for complete a list of changes.

Any questions, get in touch.

Ably JavaScript client library release 1.1.8

We've made two fixes to the Ably JavaScript client library SDK:

  • Auth: if you do multiple concurrent authorize()s, make sure the token from last one wins
  • If fallback hosts are enabled and a connection is abruptly disconnected with a 5xx error, retry immediately to a fallback rather than waiting the usual 15s disconnectedRetryTimeout

Any questions, get in touch.

Idempotent publishing now enabled in all Ably 1.1 client library SDKs

Idempotent publishing (docs) is now enabled in all Ably 1.1 Client Library SDKs. This elimimates the risk of duplicate messages.

What is idempotent publishing?

Idempotent REST publishing ensures that a failed publish due to a network failure, or any other failure, can safely be retried without worrying that a message may be published more than once.

In effect, we’re adding exactly-once semantics to our REST publishes over a protocol (HTTP) that has historically had shortcomings at a protocol level in regards to idempotent operations.

The problem is that POST, which is most commonly used to create or upload resources, is not guaranteed to be idempotent. Therefore, HTTP clients that send a POST request to a server more than once should expect multiple results.

In the world of distributed systems and services that provide contracts in terms of what onwards processing happens for POST requests, this can be a considerable problem. For example, if an HTTP client is publishing a message containing transaction details into a pub/sub system that is then in turn broadcasting that message to subscribers, publishing the message multiple times will mistakenly result in the transaction being processed multiple times.

Ably's idempotent publishing solves this.

Read the full documentation or the deep dive idempotency concept article.

Note: When we released the Ably 1.1 client library SDKs, idempotent publishing was supported in all libraries but wasn't yet enabled. If you're already using a 1.1 library there's no need to need to upgrade.

Ably client library SDK releases and updates - 1.1.1

  • .NET 1.1 is released.
  • New Java 1.0.13 and 1.1. releases. Improves handling of clock skew #462 among other changes. Full changelog.

Any questions, get in touch.

Send native cross-platform, cross-device push notifications with Ably

Ably Push Notifications graduate from beta to general availability.

With this release the Ably Client Library SDKs gain a simple, unified Push Admin API (docs). Send notifications over existing Ably channels to all subscribed devices, or deliver direct to individual devices using the Ably REST Publishing API. Ably does all the heavy lifting in the background to deliver messages reliably and instantly via APNs or FCM.

In a few lines of code you can register a device, subscribe to push notifications, and publish a push notification from your server. This makes it much easier and simpler to add iOS and Android push notifications to your Ably apps and send native notifications to your users.

Read the announcement blog, head over to the documentation for more detail, or get going right away with tutorials.

As always, let us know if you've any questions.

No published changelogs yet.

Surely Ably - simply better realtime will start publishing changelogs very soon.

Check out our other public changelogs: Buffer, Mention, Respond by Buffer, JSFiddle, Olark, Droplr, Piwik Pro, Prott, Ustream, ViralSweep, StartupThreads, Userlike, Unixstickers, Survicate, Envoy, Gmelius, CodeTree