LINUX.ORG.RU

История изменений

Исправление Vlad-76, (текущая версия) :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно на сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер ее детектировал (сравнил со списком встроенных команд), далее сервер по базе авторизованных пользователей сформировал список (за исключением пользователя который прислал эту команду) и отправил его клиенту.

затем клиент прислал команду #chat +username (username - имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, детектировал ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя чат-фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

При получении пользователем сообщения, сервер добавляет перед сообщением имя пользователя от которого сообщение пришло.

Можно реализовать команду #show chatusers, которая выведет список пользователей в чате.

Тут можно придумывать и придумывать.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно на сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер ее детектировал (сравнил со списком встроенных команд), далее сервер по базе авторизованных пользователей сформировал список (за исключением пользователя который прислал эту команду) и отправил его клиенту.

затем клиент прислал команду #chat +username (username - имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя чат-фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

При получении пользователем сообщения, сервер добавляет перед сообщением имя пользователя от которого сообщение пришло.

Можно реализовать команду #show chatusers, которая выведет список пользователей в чате.

Тут можно придумывать и придумывать.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список (за исключением пользователя который прислал эту команду) и отправил его клиенту.

затем клиент прислал команду #chat +username (username - имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя чат-фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

При получении пользователем сообщения, сервер добавляет перед сообщением имя пользователя от которого сообщение пришло.

Можно реализовать команду #show chatusers, которая выведет список пользователей в чате.

Тут можно придумывать и придумывать.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список (за исключением пользователя который прислал эту команду) и отправил его клиенту.

затем клиент прислал команду #chat +username (username - имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя чат-фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Можно реализовать команду #show chatusers, которая выведет список пользователей в чате.

Дальше можно придумывать и придумывать.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список (за исключением пользователя который прислал эту команду) и отправил его клиенту.

затем клиент прислал команду #chat +username (username - имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя чат-фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список (за исключением пользователя который прислал эту команду) и отправил его клиенту.

затем клиент прислал команду #chat +username (username - имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список (за исключением пользователя который прислал эту команду) и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат.

Условимся - строки с командами начинаются с символа #.

Клиент (он же теперь авторизованный пользователь) прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - отправит клиенту приглашение - спросит имя и пароль у пользователя выдав username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат. Допустим строки с командами начинаются с символа #.

Клиент прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу пользователей для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - выведет приглашение и спросит имя и пароль у пользователя выдав приглашение username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат. Допустим строки с командами начинаются с символа #.

Клиент прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу для авторизации. При подключении клиента к серверу, сервер по этой базе авторизует пользователя - выведет приглашение и спросит имя и пароль у пользователя выдав приглашение username: и password: соответственно. После успешной авторизации пользователя на сервере каждому имени пользователя сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат. Допустим строки с командами начинаются с символа #.

Клиент прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу для авторизации. При подключении пользователя к серверу, сервер по этой базе авторизует пользователя - спросит имя и пароль у пользователя выдав приглашение username: и password: соответственно. После успешной авторизации на сервере каждому имени сопоставите id сокета клиента (или по какому id у вас размечены соединения с клиентами) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат. Допустим строки с командами начинаются с символа #.

Клиент прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исправление Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу для авторизации. При подключении пользователя к серверу, сервер по этой базе авторизует пользователя - спросит имя и пароль у пользователя выдав приглашение username: и password: соответственно. После успешной авторизации на сервере каждому имени сопоставите id сокета (или по какому id у вас размечены соединения с пользователями) с которого авторизовался пользователь. т.е. будет создана связь - username - clientSocketId.

Так же нужно не сервере реализовать протокол для выбора пользователем с кем делать чат. Допустим строки с командами начинаются с символа #.

Клиент прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя , который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.

Исходная версия Vlad-76, :

для начала можно начать с такого примитива

создайте файл с полями - username, password. из этого файла сервер при запуске считает базу для авторизации. При подключении пользователя к серверу, сервер по этой базе авторизует пользователя - спросит имя и пароль у пользователя выдав приглашение username: и password: соответственно. После успешной авторизации на сервере каждому имени сопоставите id сокета (или по какому id у вас размечены соединения с пользователями) с которого авторизовался пользователь. т.е. будет создана связь - username - socketId.

Так же нужно не сервере реализовать протокол для выбора клиентом с кем делать чат. Допустим строки с командами начинаются с символа #.

Клиент прислал серверу #show users, сервер по символу # определил что клиент прислал команду и сервер детектировал ее, далее сервер по базе авторизованных пользователей сформировал список и отправил его клиенту.

затем клиент прислал команду #chat +username (username имя авторизованного пользователя, ‘+’ добавить в чат, ‘-’ удалить из чата), сервер получив команду, распарсил ее, проверил есть ли такой username в базе авторизованных пользоватeлей, если есть отправил клиенту ответ - ОК (что означает чат с пользователем создан, или пользователь добавлен в чат или вообще что команда выполнена успешно). И настроил у себя фильтр для пользователя, который отправил команду chat, в котором задал желаемого или несколько желаемых для общения пользователей.

После пользователь набирает в консоли сообщения и отправляет на сервер.

Все строки которые сервер получил не начинающиеся с # - есть сообщения.

После получения сообщения сервер проверяет настройки фильтра, если в фильтре есть пользователи-получатели, то отправляет сообщение согласно списку фильтра. Если фильтр пустой то отправляет уведомление-подсказку пользователю «Пользователи - для чата не заданы. Задайте пользователя командой #chat +username» + список авторизованных пользователей.