клиент чата c # с сокетом io - PullRequest
0 голосов
/ 29 июня 2018

Я создаю чат-клиент на C # с сокетом io, сервер находится в nodejs, моя проблема в том, что при получении сообщений от других пользователей, как я могу структурировать программу, чтобы иметь возможность открывать разные окна для каждого отправляющего пользователя мне сообщение, не смешивая сообщения. Надеюсь, я хорошо объяснил. Спасибо.

Идея того, что я хочу сделать

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Поскольку в сообщении есть поле 'from', проблем не должно быть, вы можете разделить свои сообщения по этому полю и затем сохранить где-нибудь коллекцию всех ваших чатов, например ::10000

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

Это просто какой-то псевдокод, но я надеюсь, что вы поняли идею.

0 голосов
/ 29 июня 2018

Ну, я думаю, что лучший вариант для этого - использовать WPF и пользовательские элементы управления. При этом вы можете легко создавать чат-пузыри и добавлять их на доску, не теряя при этом обзор.

Это также лучше, потому что рабочий код (c #) отделен от кода проекта (xaml). Я надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...