BuildAcknowledgeMessage() public static method

Build an acknowledge message.
public static BuildAcknowledgeMessage ( AbstractMessage message ) : AcknowledgeMessage
message DotAmf.ServiceModel.Messaging.AbstractMessage Incoming message.
return AcknowledgeMessage
Ejemplo n.º 1
0
        /// <summary>
        /// Serializes a reply message from a specified message version, array of parameters, and a return value.
        /// </summary>
        /// <param name="messageVersion">
        /// The SOAP message version.
        /// </param>
        /// <param name="parameters">
        /// The out parameters.
        /// </param>
        /// <param name="result">
        /// The return value.
        /// </param>
        /// <returns>
        /// The serialized reply message.
        /// </returns>
        public Message SerializeReply(MessageVersion messageVersion, object[] parameters, object result)
        {
            // An AMF operation
            if (OperationContext.Current.IncomingMessageProperties.ContainsKey(MessagingHeaders.InvokerMessageBody))
            {
                var requestMessage =
                    (AmfMessage)OperationContext.Current.IncomingMessageProperties[MessagingHeaders.InvokerMessageBody];

                // An RPC operation
                if (OperationContext.Current.IncomingMessageProperties.ContainsKey(MessagingHeaders.RemotingMessage))
                {
                    var rpcMessage =
                        (RemotingMessage)
                        OperationContext.Current.IncomingMessageProperties[MessagingHeaders.RemotingMessage];
                    AcknowledgeMessage acknowledge = AmfOperationUtil.BuildAcknowledgeMessage(rpcMessage);
                    acknowledge.Body = result;

                    result = acknowledge;
                }

                var replyHeaders = new Dictionary <string, AmfHeader>();
                var replyMessage = new AmfMessage
                {
                    Data     = result,
                    Target   = AmfOperationUtil.CreateResultReplyTarget(requestMessage),
                    Response = string.Empty
                };

                return(new AmfGenericMessage(replyHeaders, replyMessage));
            }

            throw new OperationCanceledException(Errors.AmfGenericOperationFormatter_SerializeReply_InvalidOperation);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Handle command message: a clinet ping.
        /// </summary>
        private AmfGenericMessage HandleClientPing(AmfGenericMessage request, CommandMessage message)
        {
            var acknowledge = AmfOperationUtil.BuildAcknowledgeMessage(message);

            acknowledge.Headers = new Dictionary <string, object>
            {
                { CommandMessageHeader.MessagingVersion, Capabilities.MessagingVersion }
            };

            return(AmfOperationUtil.BuildMessageReply(request, acknowledge));
        }