Skip to content

slowprog/java_socket_chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Socket-чат на Java

Это демонстрационная проект, который ставит своей целью закрепление знаний Java по созданию клиент-серверного приложения с GUI.

Описание

В проекте присутсвуют обе части чата:

  1. Серверная часть. Поднимается только на localhost на порту 8189. Не имеет никакого GUI. Её просто нужно запустить первой (перед подключением клиентов).

    Внутри есть класс для проверки авторизации BaseAuthService, в который захардкожены несколько логинов для подключения клиентов. В рамках данного проекта работа с базой данных не предусматривалось, а потом было решено сделать так. Пры логин-пароль для авторизации: login1 и pass1, login2 и pass2, login3 и pass3.

  2. Клиентская часть. Используется для подключения к серверу на localhost на порту 8189. GUI написан на JavaFX.

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

    • Можно авторизоваться под существующим пользователем или зарегестрироваться с нуля, при этом автоматически произойдёт и авторизация.
    • Можно отправлять сообщение одновременно всем.
    • Можно отправлять личный сообщения вида /w <nick> <message>, например, /w nick2 Привет!.
    • Можно выйти из чата написав /end или нажав кнопку Выйти. При этом попадаешь обратно в окно авторизации.
    • Можно удалить свой аккаунт, если нажать кнопку Удалиться или вписать команду /delete. При этом попадаешь обратно в окно авторизации.
    • Есть поле со списком участников чата находящихся online.

Заключение

Чат далеко не идиален и его можно долго ещё допиливать:

  1. Отрефакторить код улучшив его структуру и организацию файлов.
  2. Добавить специальный класс для работы с сообщениями, чтобы не кидать в сокет просто строки, парсинг которые происходит по факту разбора.
  3. Улучшить внешний вид, сделав все иконки и закосив под нормальный клиент, чтобы хоть немного избавиться от jav'овости приложения.
  4. И т.д.

Но так или иначе, как бы мне не было стыдно за этот "проект", свою задачу приложение выполнело: с JavaFX работать научился и простое клиент-серверное приложение писать научился.

About

Чат на Java с GUI'ём на JavaFX

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages