private void HandleMessage(IConverser converser, Message mesg) { if (EndPoints.ContainsKey(converser.ConversationId)) { var env = new Envelope(mesg, EndPoints[converser.ConversationId]); Communicator.SendEnvelope(env); } }
public void AddConversation(IConverser converser, IPEndPoint endPoint) { Log.DebugFormat("Adding conversation with endpoint {0}:{1} and id {2}", endPoint.Address, endPoint.Port, converser.ConversationId); converser.OnMessageToSend += HandleMessage; converser.OnConversationOver += HandleConversationOver; Conversers.Add(converser.ConversationId, converser); EndPoints.Add(converser.ConversationId, endPoint); converser.Start(); }
private void HandleConversationOver(IConverser converser) { Log.DebugFormat("Conversation with id {0} signaled that it is finished; stopping conversation", converser.ConversationId); if (Conversers.ContainsKey(converser.ConversationId)) { Conversers[converser.ConversationId].Stop(); Conversers.Remove(converser.ConversationId); EndPoints.Remove(converser.ConversationId); DeadConversations.Add(converser.ConversationId); } }
public QuestionScript(IConverser converser) { _converser = converser; }