UJCat — это минималистичный сетевой фреймворк для разработчиков на основе Netty 4.
«Из-за работы у меня почти нет времени на разработку этого проекта. В дальнейшем проект будет развиваться в направлении создания сетевых коммуникаций для игр. Благодарю за внимание и поддержку».
«Вам нужна сетевая коммуникация, но вы не знаете, как работать с socket? Не проблема!»
Фреймворк UJCat практически не требует настройки сетевого уровня при использовании. Цель фреймворка — дать разработчикам возможность сосредоточиться на бизнес-логике, а не на сетевом уровне. Фреймворк подходит для начинающих разработчиков, работающих с сокетами, или небольших проектов, где требуется сокетная связь.
«Будет ли сложно использовать или интегрировать фреймворк с моим проектом?»
Нет, фреймворк использует рефлексию для подключения к сетевому и бизнес-уровню. Разработчику нужно только унаследовать класс бизнес-логики фреймворка. Бизнес-класс не представляет сложности, нужно лишь реализовать три метода обратного вызова:
Кроме этих трёх обязательных методов, есть ещё один метод отправки сообщений: sendMsg(String head, String body). Для отправки сообщения достаточно вызвать этот метод, передав параметры head (заголовок сообщения) и body (содержимое сообщения).
Помимо основных методов, существует свойство userKey, которое может быть полезно разработчикам. Каждый объект, наследующий класс бизнес-логики, получает уникальный ключ при успешном соединении. Этот ключ можно использовать для управления объектами сетевого соединения или пользователями сервера.
В качестве примера рассмотрим простой сервер, который просто возвращает полученное сообщение пользователю. Обратите внимание, что класс бизнес-логики сервера называется MessageSelect. Клиентский класс бизнес-логики называется ClientService. Оба класса имеют одинаковые характеристики, и разработчику необходимо выбрать, какой из них наследовать. Вот пример кода:
public class TestServerSelect extends MessageSelect {
@Override
public void msgService(String var1, String var2) {
System.out.println("Пользователь " + userKey + " отправил сообщение: [заголовок] " + var1 + " [содержимое] " + var2);
sendMsg("0", "Сервер получил ваше сообщение! : " + var2);
}
@Override
public void exception(int var1) {
System.out.println("Пользователь " + userKey + " разорвал соединение с сервером");
}
@Override
public void active() {
System.out.println("Пользователь " + userKey + " подключился к серверу");
}
}
Это весь код для сервера. Простота очевидна.
Теперь запустим сервер. Ниже приведён пример кода запуска:
public static void main(String[] args) throws InterruptedException {
// Создаём объект сервера
UJServer b = new UJServer();
// Устанавливаем порт и добавляем класс бизнес-логики
b.setServer(8099, TestServerSelect.class);
// Запускаем сервер
b.ServiceStart();
}
Сервер прослушивает порт 8099 и добавляет класс бизнес-логики. Затем он запускается. Далее я проведу тестирование сервера с помощью клиента. Код клиента не приводится, так как его логика аналогична серверной. Нужно написать класс бизнес-логики и добавить его в клиентский класс перед запуском.
На следующих изображениях показаны этапы работы сервера: запуск, подключение клиента и отправка клиентом сообщения с последующим отключением.
[1]: https://s1.ax1x.com/2017/11/22/2xrKe.png «Запуск сервера» [2]: https://s1.ax1x.com/2017/11/22/2xybd.png «Подключение клиента» [3]: https://s1.ax1x.com/2017/11/22/2xcVA.png «Отправка клиентом сообщения и отключение»
Вот пример простого сервера ответов.
Между клиентом и сервером фреймворка UJCat есть этап шифрования и дешифрования данных. Шифровальщик и дешифратор включены в проект. Если вы используете только серверную или клиентскую часть, другой стороне потребуется реализовать шифрование и аутентификацию.
Этот сервер имеет ограничение на тип сообщений, которые могут быть обработаны, — они должны быть строками. Это упрощает работу, но снижает производительность. Благодаря использованию Netty 4, сервер обеспечивает стабильность и надёжность при работе с большим количеством пользователей и высокой нагрузкой. Фреймворк подойдёт для небольших проектов или новичков, желающих создать сетевые коммуникации. Это ранняя версия, которая будет улучшаться и становиться более стабильной и удобной в использовании. Планируется обновление версии для Unity и дальнейшее развитие API. Надеюсь на вашу поддержку!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )