void ProcessSignalingMessage(ARDSignalingMessage message) { switch (message.Type) { case ARDSignalingMessageType.Offer: case ARDSignalingMessageType.Answer: ARDSessionDescriptionMessage sdpMessage = message as ARDSessionDescriptionMessage; _peerConnection.SetRemoteDescriptionWithDelegate(this, sdpMessage.Description); break; case ARDSignalingMessageType.Candidate: ARDICECandidateMessage candidateMessage = message as ARDICECandidateMessage; _peerConnection.AddICECandidate(candidateMessage.Candidate); break; case ARDSignalingMessageType.Bye: // Other client disconnected. // TODO(tkchin): support waiting in room for next client. For now just Disconnect(); break; default: break; } }