分享WCF聊天程序--WCFChat实现代码

2019-12-30 11:02:31于海丽
  • LoginForm loginDlg = new LoginForm();  if (loginDlg.ShowDialog() == DialogResult.OK) 
  • {  userName = loginDlg.txtUserName.Text; 
  • loginDlg.Close();  } 
  •   txtChatContent.Focus(); 
  • Application.DoEvents();  InstanceContext site = new InstanceContext(this);//为实现服务实例的对象进行初始化 
  • proxy = new ChatServiceClient(site);  IAsyncResult iar = proxy.BeginJoin(userName, new AsyncCallback(OnEndJoin), null); 
  • wfDlg.ShowDialog();  } 
  •   private void OnEndJoin(IAsyncResult iar) 
  • {  try 
  • {  string[] list = proxy.EndJoin(iar); 
  • HandleEndJoin(list);   
  • }  catch (Exception e) 
  • {  HandleEndJoinError(); 
  • }   
  • }  /// <summary> 
  • /// 错误提示  /// </summary> 
  • private void HandleEndJoinError()  { 
  • if (wfDlg.InvokeRequired)  wfDlg.Invoke(new HandleErrorDelegate(HandleEndJoinError)); 
  • else  { 
  • wfDlg.ShowError("无法连接聊天室!");  ExitChatSession(); 
  • }  } 
  • /// <summary>  /// 登录结束后的处理 
  • /// </summary>  /// <param name="list"></param> 
  • private void HandleEndJoin(string[] list)  { 
  • if (wfDlg.InvokeRequired)  wfDlg.Invoke(new HandleDelegate(HandleEndJoin), new object[] { list }); 
  • else  { 
  • wfDlg.Visible = false;  ShowInterChatMenuItem(false); 
  • foreach (string name in list)  { 
  • lbOnlineUsers.Items.Add(name);  } 
  • AppendText(" 用户: " + userName + "--------登录---------" + DateTime.Now.ToString()+ Environment.NewLine);  } 
  • }  /// <summary> 
  • /// 退出聊天室  /// </summary> 
  • private void OutInterChatMenuItem_Click(object sender, EventArgs e)  {