private void btnNewServer_Click(object sender, EventArgs e) { ClearStatus(); TalkerSession<string> talkerSession; try { talkerSession = new TalkerSession<string>(TalkerSession<string>.SessionTypeEnum.Server, GetServerAddressString()); talkerSession.SubscribeMessageReceived(new TalkerSession<string>.MessageReceiverDelegate(MessageReceivedDistributor)); } catch (Exception e1) { toolStripStatusLabel1.Text = e1.Message; return; } TreeNode treeNode = tvConnections.Nodes.Add("Server " + GetServerAddressString()); treeNode.Tag = talkerSession; talkerSession.TopLevelTreeNode = treeNode; }
private void MessageReceiver(TalkerSession<string> talkerSession, string message) { if (this.tbReceived.InvokeRequired) // calling thread same as form thread? { TalkerSession<string>.MessageReceiverDelegate d = new TalkerSession<string>.MessageReceiverDelegate(MessageReceiver); this.Invoke(d, new object[] { talkerSession, message }); // synchronous call - for asynch use BeginInvoke instead } else { this.Activate(); this.tbReceived.AppendText(DateTime.Now.ToString("HH:mm:ss ") + message + Environment.NewLine); } }
private string TreeNodeText(TalkerSession<string> talkerSession) { StringBuilder sb = new StringBuilder(80); sb.Append(talkerSession.SessionType); sb.Append(" " + talkerSession.ServerAddress()); sb.Append(" " + talkerSession.ClientAddress()); return sb.ToString(); }
private void MessageReceivedDistributor(TalkerSession<string> talkerSession, string message) { MessageReceiver(talkerSession, message); }