Запустите свой собственный чат -сервер AIM, управляя пользователями и группами. Подключите винтажный клиент и будьте болтают.
Клонируйте этот репозиторий и убедитесь, что вы установили на пути вашего терминала. Скопировать env/example.config.yml для env/config.yml и настроить настройки службы.
У сервера есть два адреса, которые необходимо установить:
addr : хост: порт, с которым сервер связываетсяbos : хост: порт, который клиенты попытаются получить доступ к базовым услугам Оскара bos должен быть IP, который клиент может достичь напрямую, а не 0.0.0.0 . Если вы запускаете клиент в виртуальной среде, то bos должен быть установлен на локальный IP -адрес машины. На macOS вы можете найти это, работая:
osascript -e "IPv4 address of (system info)"
Если это первый раз, когда запустит эту службу, вы должны выполнить миграцию DB, чтобы настроить все таблицы и создать пользователя по умолчанию.
$ go run cmd/migrate/main.go --config <path to config> init
$ go run cmd/migrate/main.go --config <path to config> up
После настройки конфигурации вы можете запустить сервер:
$ ./run.sh
Если вы настроите свою конфигурацию где -то еще, установите переменную среды CONFIG_FILE на полный путь файла конфигурации, как так:
$ CONFIG_PATH=/Users/admin/config.yml ./run.sh
Если вы хотите разработать Aim-Oscar nodemon Server, в ./dev.sh Клиенты AIM довольно хороши не сразу не сдаваться, когда сервер недоступен, поэтому вы можете быстро развиваться.
В cmd/user есть инструмент администрирования пользователя, который позволяет добавлять и проверять пользователей на вашем сервере.
Чтобы добавить и проверить пользователя:
$ go run cmd/user/main.go --config <path to config> add <screen_name> <password> <email>
Чтобы проверить пользователя, который зарегистрировал, но не подтвердил их электронную почту:
$ go run cmd/user/main.go --config <path to config> verify <screen_name>
от Исерверда
BOS : Основная служба Оскара. Этот термин относится к услугам, которые формируют ядро Мгновенного обслуживания мессенджера. Эти услуги включают в себя вход/вход, найдите, мгновенное сообщение, управление составами, управление информацией и список друзейFLAP -это низкоуровневый протокол связи, который облегчает разработку уровней более высокого уровня, ориентированных на рекордскую связь. Он используется в TCP -соединении между всеми клиентами и серверами.SNAC : SNAC - это базовая коммуникационная единица, которая обменивается между клиентами и серверами. Слои связи SNAC расположены поверх слоя лоскута.TLV : значение длина типа. Кортеж, разрешающий напечатанную непрозрачную информацию, проходить через протокол. Обычно TLV предназначены для интерпретации на основном слое. Будучи напечатанными, новые элементы могут быть добавлены без модификации нижних слоев.ICBM : Inter Client Basic Message. ICBM-это канализованный механизм клиента к клиенту. В настоящее время наиболее видимый канал пользователя используется для мгновенных сообщений.