private void sendMessage(MSNMessage message) { if (switchboardSocket.connected() == false) { List <String> initialUsers = new List <string>(); for (int i = 0; i < lastMessageUsers.Count; i++) { initialUsers.Add(lastMessageUsers[i].ToString()); } controller.startConversation(initialUsers); while (switchboardSocket.connected() == false) { try { Thread.Sleep(50); } catch (Exception) { } } } switchboardSocket.send(message); }
//public override void Disconnect() //{ // base.Disconnect(); // //m_msn.CloseConnection(); // m_msn.NameserverProcessor.Disconnect(); // // reset the m_msn object // InitMSN(); //} //private void OnConversationCreated(object sender, DotMSN.ConversationCreatedEventArgs e) //{ // // if e.Initiator is null, then this convo was created by a remote user // // otherwise it was created by us! // if (e.Initiator == null) // { // Console.WriteLine("MSN: Conversation initiated by remote user..."); // } // else // { // Console.WriteLine("MSN: Conversation initiated locally..."); // } // //e.Conversation.Switchboard.TextMessageReceived += new XihSolutions.DotMSN.TextMessageReceivedEventHandler(MessageHandler); // //e.Conversation.MessageReceived += new Conversation.MessageReceivedHandler(MessageHandler); // //e.Conversation.ContactJoin += new Conversation.ContactJoinHandler(ContactJoined); // //e.Conversation.ContactLeave += new Conversation.ContactLeaveHandler(ContactLeave); //} ////private void ContactLeave(Conversation sender, ContactEventArgs e) ////{ //// m_convos[e.Contact.Mail] = null; ////} //private void ContactJoined(DotMSN.Conversation sender, DotMSN.ContactEventArgs e) //{ // //m_convos[e.Contact.Mail] = sender; // //if (sender.ClientData != null) // //{ // // SendMessage(e.Contact.Mail, (string)sender.ClientData); // // sender.ClientData = null; // //} //} //private void MessageHandler(object sender, XihSolutions.DotMSN.TextMessageEventArgs e) //{ // DotMSN.TextMessage msg = e.Message; // DotMSN.Contact con = e.Sender; // if (e.Sender.Status != XihSolutions.DotMSN.PresenceStatus.Away) // { // _OnMessageReceived(con.Mail, msg.Text, false); // } //} public override void SendMessage(string strUser, string strMessage) { base.SendMessage(strUser, strMessage); if (m_convos[strUser] != null) { dotMSN.MSNSwitchboard sb = m_convos[strUser] as dotMSN.MSNSwitchboard; if (sb != null) { sb.sendMessage(new dotMSN.MSNUserOutgoingMessage(@"Times New Roman", strMessage)); } } else { List <string> users = new List <string>(); users.Add(strUser); m_msn.startConversation(users); if (m_msgque[strUser] == null) { ArrayList msglist = new ArrayList(); msglist.Add(strMessage); m_msgque[strUser] = msglist; } else { ArrayList msglist = m_msgque[strUser] as ArrayList; if (msglist != null) { msglist.Add(strMessage); } } } }