diff --git a/content/client-lib-development-guide/features.textile b/content/client-lib-development-guide/features.textile index 90e4770cfb..d1844edac1 100644 --- a/content/client-lib-development-guide/features.textile +++ b/content/client-lib-development-guide/features.textile @@ -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 @@ -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@