1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yezhihao-netmc

Клонировать/Скачать
README.md 4.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 14.03.2025 22:03 5e4ad60

Основанный на Netty фреймворк для реализации MVC-паттерна разработки

Основные характеристики

  • Основан на Netty, что позволяет использовать традиционный подход MVC в разработке

Применение

  • Разработка серверной части приложений с использованием протокола TCP

Код проекта

Способ скачивания

  • Команда для клонирования репозитория на Gitee: git clone https://gitee.com/yezhihao/netmc -b master
  • Команда для клонирования репозитория на GitHub: git clone https://github.com/yezhihao/netmc -b master

Структура проекта

└── framework
    ├── codec Кодирование и декодирование
    ├── core Обработка сообщений и маршрутизация
    └── session Управление соединением и отправка сообщений

Инструкция по использованию

  • @Endpoint, входная точка сервиса, аналогично @Controller в SpringMVC;
  • @Mapping, определяет ID сообщения, аналогично @RequestMapping в SpringMVC;
  • @AsyncBatch, асинхронная обработка пакетных сообщений, используется для высокопроизводительных операций, таких как 0x0200 (сообщение о местоположении устройства).

Взаимодействие с сообщениями:

@Endpoint
public class JT808Endpoint {

    @Autowired
    private LocationService locationService;

    @Autowired
    private DeviceService deviceService;
}
``````markdown
    // Асинхронная обработка пакетных сообщений, размер очереди 20000, максимальное количество сообщений для обработки за один раз 200, максимальное время ожидания 5 секунд
    @AsyncBatch(capacity = 20000, maxElements = 200, maxWait = 5000)
    @Mapping(types = "Сообщение о местоположении", desc = "Сообщение о местоположении")
    public void сообщение_о_местоположении(List<T0200> list) {
        locationService.batchInsert(list);
    }

    @Async
    @Mapping(types = "Регистрация терминала", desc = "Регистрация терминала")
    public T8100 register(T0100 message, Session session) {
        Header header = message.getHeader();

        T8100 result = new T8100(session.nextSerialNo(), header.getMobileNo());
        result.setSerialNo(header.getSerialNo());

        String token = deviceService.register(message);
        if (token != null) {
            session.register(header);

            result.setResultCode(T8100.Success);
            result.setToken(token);
        } else {

            result.setResultCode(T8100.NotFoundTerminal);
        }
        return result;
    }
}

Для более подробных примеров обратитесь к директории Test. Проекты, использующие этот компонент: [https://gitee.com/yezhihao/jt808-server/tree/master](https://gitee.com/yezhihao/jt808-server/tree/master).

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

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

Группа для технического общения в QQ: [906230542]

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yezhihao-netmc.git
git@api.gitlife.ru:oschina-mirror/yezhihao-netmc.git
oschina-mirror
yezhihao-netmc
yezhihao-netmc
master