Compare commits

...

5 Commits

Author SHA1 Message Date
Anatoliy Esherkin 1623dd391d
Merge 6a82004727 into 77da4a1b61 2026-03-23 21:24:02 +00:00
Alexey Polyakov 77da4a1b61
И так тоже будет лучше 2026-03-22 08:41:49 +03:00
WowInceptionGood f9b6b2c75e
README: Думаю так лучше 2026-03-22 00:07:10 +03:00
WowInceptionGood 930a95453f
Документация будет перенесена в другой репозиторий в ближайшее время
+ Обновил README ещё.
2026-03-22 00:06:19 +03:00
Anatoliy Esherkin 6a82004727
Фикс 2026-03-12 10:31:11 +03:00
5 changed files with 8 additions and 36 deletions

View File

@ -1 +0,0 @@
TODO

View File

@ -1,29 +0,0 @@
# Описание протокола TamTam по Websocket
## Основная информация
В веб версии мессенджера ТамТам используется протокол, работающий поверх Websocket.
Пакеты в этом протоколе являются текстовыми JSON данными.
Структура пакета:
```
{
ver: int,
cmd: int,
seq: int,
opcode: int,
payload: {}
}
```
* ver - версия протокола
* cmd - определяет, от кого отправлен пакет. клиент - 0, сервер - 1
* seq - порядковый номер пакета (сервер дублирует его из запроса клиента)
* opcode - команда
* payload - полезная нагрузка команды
## Команды протокола
### PING (1)
Клиент периодически отправляет пакет с командой PING и пустой нагрузкой серверу.
Сервер отвечает ему тем же.

View File

@ -1,8 +1,8 @@
# Навигация по faq
## Работа с сервером
[Установка сервера](install.md)
- [Установка сервера](install.md)
## Патчинг клиентов
[Патч мобильного клиента для Android](patch_apk.md)
[Патч мобильного клиента для IOS](patch_ipa.md)
- [Патч мобильного клиента для Android](patch_apk.md)
- [Патч мобильного клиента для IOS](patch_ipa.md)

View File

@ -22,5 +22,5 @@ https://t.me/openmax_alerts
Клиент может быть практически любым, главное условие - чтобы он был совместим с официальным сервером (`api.oneme.ru` / `api.tamtam.chat`).
# Дополнительная информация
[Faq](faq/readme.md)
[Открытые сервера](faq/servers.md)
- [FAQ](faq/readme.md)
- [Публичные сервера](faq/servers.md)

View File

@ -123,6 +123,8 @@ class OnemeMobileServer:
except Exception as e:
self.logger.error(f"Произошла ошибка при работе с клиентом {address[0]}:{address[1]}: {e}")
traceback.print_exc()
except AttributeError:
self.logger.error(f"Повреждённый пакет от клиента {address[0]}:{address[1]}, пропускаю")
# Удаляем клиента из словаря
if userPhone:
@ -184,4 +186,4 @@ class OnemeMobileServer:
self.logger.info(f"Сокет запущен на порту {self.port}")
async with self.server:
await self.server.serve_forever()
await self.server.serve_forever()