【问题标题】:c# chat client with socket io时间:2019-04-01 标签:c#chatclientwithsocketio
【发布时间】:2018-06-29 16:36:17
【问题描述】:

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

The idea of what i want to make

【问题讨论】:

标签: c# sockets chat


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我认为最好的选择是使用 WPF 和自定义控件。有了这个,您可以轻松地制作聊天气泡并将它们添加到板上,而不会丢失概览。

    它也更好,因为工作代码 (c#) 与设计代码 (xaml) 分开。 希望对你有帮助。

    【讨论】:

    • 它是如何回答问题的?
    • 我不太明白你的意思
    猜你喜欢
    • 2020-05-07
    • 2016-10-23
    • 2011-01-31
    • 2013-04-11
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多