ChannelReceiverFunction

ChannelReceiverFunction[fun]

represents a channel receiver function that applies fun to any channel message it receives.

Details and Options

  • CloudDeploy[ChannelReceiverFunction[]] yields a CloudObject containing meta-information that specifies the channel to which messages for the channel receiver should be sent.
  • CloudDeploy[ChannelReceiverFunction[]"curi"] deploys the receiver to ChannelObject["curi"].
  • CloudDeploy[ChannelReceiverFunction[]channel] deploys the receiver to the specified channel, given as ChannelObject[].
  • CloudDeploy[ChannelReceiverFunction[]] is equivalent to CloudDeploy[ChannelReceiverFunction[]Automatic].
  • In a deployed ChannelReceiverFunction[fun], fun[assoc] is evaluated whenever a channel message is received. The association assoc contains the same elements as in ChannelListen, except for ones specific to the ChannelListener object.
  • CloudDeploy[ChannelReceiverFunction[fun]] sets up a channel receiver function that is executed in the cloud and does not require active listeners in any specific Wolfram Language session.
  • The function fun is evaluated in the environment of the owner of the channel receiver function.
  • Channel receiver functions cannot be triggered by messages that were themselves sent from within channel receiver functions.

Examples

open allclose all

Basic Examples  (3)

Define a receiver function:

Apply the function to an association representing a channel broker message:

Define a receiver function that logs the incoming message to a cloud object:

Deploy the function:

Obtain the target channel of the receiver:

Send a message to the channel:

Check the cloud object:

Clean up:

Define a receiver function that logs the incoming message to a databin:

Deploy the function:

Obtain the target channel of the receiver function:

Send a message to the channel:

Check the contents of the databin:

Timestamps are treated specially by the Wolfram Data Drop and are available in a separate property (or together with the entry body in the FullEntries property):

Clean up:

Scope  (7)

Apply to an association:

Apply to a string representing a JSON object:

Deploy to an anonymous cloud object and anonymous channel object:

Clean up:

Deploy to the specified channel object:

Clean up:

Deploy to the specified cloud object:

Clean up:

Deploy to the specified channel object and the specified cloud object:

Clean up:

Specify the targets as objects:

Clean up:

Applications  (3)

Deploy a channel that adds incoming messages to a databin:

Send a message to the channel and retrieve its content from the databin:

Clean up:

Define a receiver function that sends messages containing the string "URGENT" to a priority channel and the rest to a bulk channel:

Create the two channels and deploy the receiver function to a third channel, which is automatically created:

Start listening on the channels:

Send a regular and an urgent message on the dispatcher channel:

The received messages:

Clean up:

Deploy a receiver function that sends an email alert if a message arrives when nobody is listening on the channel:

Send a message on the channel and check your mailbox for an email alert:

Clean up:

Properties & Relations  (1)

Deploying ChannelReceiverFunction sets ChannelBrokerAction for the associated channel object:

Introduced in 2017
 (11.2)
 |
Updated in 2020
 (12.1)