When a Flex application sends a message to a ColdFusion application, the Data Services Messaging event gateway sends a CFEvent structure to the onIncomingMessage function of the configured CFC, with the following information mapped to the data of the event:
Name |
Contents |
---|---|
body |
Body of the message. |
ClientID |
ID of the client that sent the message. |
CorrelationID |
Correlation identifier of the message. |
Destination |
Flex destination of the message. |
Headers |
If the message contains any headers, the CFML structure that contains the header names as keys and values. |
Timestamp |
Timestamp of the message. |
The incoming message data structure also includes the values of messageID and timeToLive from the Flex message.
Incoming message handling example
The following example puts data that is contained in the body of the message from the Flex application into a structure. It then uses the contents of the structure to generate an e-mail message.
<cfcomponent displayname="SendEmail" hint="Handles incoming message from Flex"> <cffunction name="onIncomingMessage" returntype="any"> <cfargument name="event" type="struct" required="true"> <!--- Create a structure to hold the message object sent from Flex---> <cfset messagebody = event.data.body> <!--- Populate the structure. ---> <cfset mailfrom="#messagebody.emailfrom#"> <cfset mailto="#messagebody.emailto#"> <cfset mailsubject="#messagebody.emailsubject#"> <cfset mailmessage ="#messagebody.emailmessage#"> <!--- Send email with values from the structure. ---> <cfmail from="#mailfrom#" to="#mailto#" subject="#mailsubject#"> <cfoutput>#mailmessage#</cfoutput> </cfmail> </cffunction> </cfcomponent>
If the Flex application sends the message in the header instead of in the body, you create and populate the structure, as the following example shows:
<cfset messageheader = StructNew()> <cfset messageheader.sendto = event.data.headers.emailto> <cfset messageheader.sentfrom = event.data.headers.emailfrom> <cfset messageheader.subject = event.data.headers.emailsubject> <cfset messageheader.mailmsg = event.data.headers.emailmessage> <cfset mailfrom="#messageheader.sentfrom#"> <cfset mailto="#messageheader.sendto#"> <cfset mailsubject="#messageheader.subject#"> <cfset mailmessage ="#messageheader.mailmsg#">