基本上我的服务器向客户端发送一个字符串,然后使用Dim data() As String = receivedString.Split("|"c)
在客户端进行分解。字符串的示例将是MESSAGE|TestUser|This Is The Message
当收到此字符串时我想要做的事情是检查此用户之前是否已向此客户端发送消息(应该已经有一个带有当前“聊天”的窗口),如果用户在附加文本之前发送了消息,请说出一个富文本框。如果用户在创建“聊天窗口”的新实例之前没有发送消息,那么来自服务器的任何未来消息都将转到该窗口实例。
感谢, Houlahan
Dim data() As String = message.Split("|"c)
Select Case data(0)
Case "MESSAGE"
Try
If conversations.ContainsKey(data(1)) Then
Dim convoWindow As ChatWindow
convoWindow = conversations.Item(data(1))
convoWindow.RichTextBox1.AppendText(data(2))
Else
conversations.Add(data(1), New ChatWindow())
Dim convoWindow As ChatWindow
convoWindow = conversations.Item(data(1))
convoWindow.Show()
convoWindow.RichTextBox1.AppendText(data(2))
End If
答案 0 :(得分:1)
你可以通过各种方式实现这一目标。突然出现的第一个问题是创建一个Dictionary对象,该对象将TestUser
作为与代表对话的Form
关联的关键字关联起来。 e.g。
conversations.Add(testUser, new FormConversation(...))
收到消息后,您将引用跟踪所有正在进行的对话的字典。
如果用户名不存在密钥,请创建一个新表单并将用户添加到字典以及对表单的引用。如果确实存在,可以根据用户名从字典中提取,只需将其放在前面并将消息传递给它。