c# 聊天客户端与 socket io
c# chat client with socket io
我正在使用 socket io 在 C# 中构建一个聊天客户端,服务器在 nodejs 中,我的问题是当接收来自其他用户的消息时,我如何构建程序才能打开不同的 window 对于每个向我发送消息但不混合消息的用户。我希望我解释得很好。谢谢
The idea of what i want to make
嗯,我认为最好的选择是使用 WPF 和自定义控件。有了它,您可以轻松制作聊天气泡并将它们添加到看板,而不会丢失概览。
它也更好,因为工作代码 (c#) 与设计代码 (xaml) 是分开的。
希望对你有帮助。
由于消息中有 'from' 字段,这应该不是问题,您可以按此字段划分消息,然后将所有聊天记录的集合存储在某处,例如:
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);
}
这只是某种伪代码,但我希望你能理解。
我正在使用 socket io 在 C# 中构建一个聊天客户端,服务器在 nodejs 中,我的问题是当接收来自其他用户的消息时,我如何构建程序才能打开不同的 window 对于每个向我发送消息但不混合消息的用户。我希望我解释得很好。谢谢
The idea of what i want to make
嗯,我认为最好的选择是使用 WPF 和自定义控件。有了它,您可以轻松制作聊天气泡并将它们添加到看板,而不会丢失概览。
它也更好,因为工作代码 (c#) 与设计代码 (xaml) 是分开的。 希望对你有帮助。
由于消息中有 'from' 字段,这应该不是问题,您可以按此字段划分消息,然后将所有聊天记录的集合存储在某处,例如:
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);
}
这只是某种伪代码,但我希望你能理解。