Skip to content

Commit

Permalink
Clarity around null values and publish arity for Realtime
Browse files Browse the repository at this point in the history
  • Loading branch information
mattheworiordan committed Sep 29, 2015
1 parent dd19895 commit a9c31a5
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion content/client-lib-development-guide/features.textile
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ h3(#rest-channel). Channel
*** @(RSL2b3)@ @limit@ supports up to 1,000 items; if omitted the direction defaults to the REST API default (100)
* @(RSL3)@ @Channel#presence@ attribute returns a @Presence@ object for this channel
* @(RSL4)@ Message encoding
** @(RSL4a)@ Payloads must be binary, strings, or objects capable of JSON representation. Any other data type should not be permitted and an exception should be raised
** @(RSL4a)@ Payloads must be binary, strings, or objects capable of JSON representation, or can be empty (omitted). Any other data type should not be permitted and an exception should be raised
** @(RSL4b)@ If a message is encoded, the @encoding@ attribute represents the encoding(s) applied in right to left format i.e. "utf-8/base64" indicates that the original payload has "utf-8" encoding and has subsequently been encoded in Base64 format.
** @(RSL4c)@ When using MessagePack Message encoding
*** @(RSL4c1)@ a binary Message payload is encoded as MessagePack binary type
Expand Down Expand Up @@ -303,6 +303,10 @@ h3(#realtime-channel). Channel
* @(RTL6)@ @Channel#publish@ function:
** @(RTL6a)@ Messages are encoded in the same way as the REST @Channel#publish@ method
** @(RTL6b)@ An optional callback can be provided to the @#publish@ method that is called when the message is successfully delivered or upon failure with the appropriate @ErrorInfo@ error. A test should exist to publish lots of messages on a few connections to ensure all message success callbacks are called for all messages published
** @(RTL6g)@ Expects either an array of @Message@ objects or a @name@ string and @data@ payload:
** @(RTL6g1)@ When @name@ and @data@ is provided, a single @ProtocolMessage@ containing one @Messaeg@@ is published to Ably
** @(RTL6g2)@ When an array of @Message@ objects is provided, a single @ProtocolMessage@ is used to publish all @Message@ objects in the array. However, a yet to be implemented feature should limit the total number of messages bundled in a single ProtocolMessage based on the default max message size.
** @(RTL6g3)@ Allows @name@ and or @data@ to be @Null@. If any of the values are null, then key is not sent to Ably i.e. a payload with a @Null@ value for @data@ would be sent as follows @{ "name": "click" }@
** @(RTL6c)@ Connection state conditions:
*** @(RTL6c1)@ If the connection is @CONNECTED@ then the messages are published immediately
*** @(RTL6c2)@ If the connection is @CONNECTING@ or @DISCONNECTED@, and @ClientOptions#queueMessages@ has not been explicitly set to false, then the message will be queued and delivered as soon as the connection state returns to @CONNECTED@
Expand Down

0 comments on commit a9c31a5

Please sign in to comment.