首页 > 解决方案 > 时间:2019-04-01 标签:c#chatclientwithsocketio

问题描述

我正在使用 socket io 在 C# 中构建一个聊天客户端,服务器在 nodejs 中,我的问题是当接收来自其他用户的消息时,我如何构建程序以便能够为每个向我发送消息的用户打开不同的窗口不混合消息。我希望我已经解释得很好。谢谢。

我想做什么的想法

标签: c#socketschat

解决方案


由于您在消息中有“发件人”字段,这应该不是问题,您可以按此字段划分消息,然后将所有聊天的集合存储在某处,例如:

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);
}

这只是某种伪代码,但我希望你能明白。


推荐阅读