public void HandleIncommingMessage(NetMessage message) { try{ switch (message.Action.Action) { case NetAction.ActionType.ACCEPTED: PendingAcceptRequestsManager.MessageReceived(message.Action.AcceptedMessage.ActionId); break; case NetAction.ActionType.FAULT: HandleFault(message); break; case NetAction.ActionType.NOTIFICATION: HandleNotification(message); break; case NetAction.ActionType.PONG: HandlePongMessage(message); break; default: DealWithException(new Exception(String.Format("Unexpected incoming message type: {0}", message.Action.Action))); break; } } catch (Exception ex) { DealWithException(new Exception("Error handling incomming message.", ex)); } }
public bool HandleOutgoingMessage(NetMessage message, AcceptRequest acceptRequest) { if (acceptRequest != null) { PendingAcceptRequestsManager.AddAcceptRequest(acceptRequest); } // transform and Marshall message byte[] encodedData = EncodeMessage(message); return(SendMessage(encodedData)); }
private void HandleFault(NetMessage message) { string msgDest = message.Action.FaultMessage.Detail; if (message.Action.FaultMessage.Code.Equals(NetFault.PollTimeoutErrorMessage.Action.FaultMessage.Code) || message.Action.FaultMessage.Code.Equals(NetFault.NoMessageInQueueErrorMessage.Action.FaultMessage.Code)) { lock (this.syncSubscriptions) { if (syncSubscriptions.ContainsKey(msgDest)) { PollRequest request = syncSubscriptions[msgDest]; if (message.Action.FaultMessage.Code.Equals(NetFault.PollTimeoutErrorMessage.Action.FaultMessage.Code)) { request.Handover.Offer(UnblockNotification); } else { request.Handover.Offer(NoMessageNotification); } } return; } } message.Action.FaultMessage.Headers = message.Headers; if (!PendingAcceptRequestsManager.MessageFailed(message.Action.FaultMessage)) { FaultHandler handler = OnFault; if (handler != null) { OnFault(message.Action.FaultMessage); } } }