我正在使用带有套接字io的C#构建一个聊天客户端,该服务器位于nodejs中,我的问题是从其他用户那里接收消息时,如何构造该程序以便能够为每个发送用户打开一个不同的窗口给我发消息而不混消息。我希望我解释得很好。谢谢。
答案 0 :(得分:0)
好吧,我认为使用WPF和自定义控件是实现这一目标的最佳选择。借助此功能,您可以轻松创建聊天气泡并将其添加到面板中,而不会丢失概述。
它也更好,因为工作代码(c#)与设计代码(xaml)是分开的。 希望对您有帮助。
答案 1 :(得分:0)
由于消息中有“发件人”字段,所以这不成问题,您可以按此字段划分消息,然后将所有聊天的集合存储在某个地方,例如:
Dictionary<string, ChatWindow> chatWindows = new Dictionary<string, ChatWindow>();
...
public void ProcessMessage(Message message)
{
ChatWindow chatWindow;
if(!chatWindows.TryGetValue(message.From, out chatWindow))
{
chatWindow = new ChatWindow();
chatWindows[message.From] = chatWindow;
}
chatWindow.AddMessage(message);
}
这只是某种伪代码,但我希望您能理解。