This site is developed to XHTML and CSS2 W3C standards.
If you see this paragraph, your browser does not support those standards and you
need to upgrade. Visit WaSP
for a variety of options.
Paste #729
Posted by: OWC/1
Posted on: 2026-10-03 08:09:00
Age: 13 hrs ago
Views: 3
OWC/1
---------------------------------------------------------------------
1. ПОДКЛЮЧЕНИЕ
сервер: chat.old-web.com, порт: 4225
2. ФОРМАТ СТРОК
Одна команда это одна строка текста. Строка заканчивается символом \n
(клиент отправляет только \n, принимает и \n, и \r\n).
Кодировка на проводе: UTF-8. Внутри клиент работает в cp1251, поэтому
символы, которых нет в cp1251, и эмодзи превращаются в знак "?".
Вид строки:
КОМАНДА поле0<TAB>поле1<TAB>поле2 ...
Команда отделяется от полей первым пробелом, сами поля друг от друга
символом табуляции. Клиент читает не больше 8 полей, недостающие считает
пустыми. Названия команд пишутся заглавными буквами.
Лимиты клиента:
буфер приема: 65535 байт (если за это время не пришел \n, буфер сбрасывается)
длина принятой строки: до 4095 символов
длина текста сообщения: до 1000 символов
ники при сравнении (игнор-лист) регистр не учитывают
3. ВХОД В ЧАТ
Порядок:
клиент: HELLO OldWebChat<TAB>1.0
клиент: LOGIN ник<TAB>пароль<TAB>цвет
сервер: HELLO имя_сервера<TAB>версия
сервер: WELCOME ник<TAB>роль<TAB>название_чата<TAB>motd
Цвет это строка вида #RRGGBB, по умолчанию #000080.
Если сервер не прислал WELCOME в течение 15 секунд, клиент пишет, что
сервер говорит не по протоколу OWC/1, и сохраняет все полученные данные
в файл.
Гость: ник guest, пароль пустой. Вход гостей включается настройкой
guest_allowed.
Логин и пароль общие с почтой email.old-web.com (адрес вида
логин@old-web.com). Восстановление пароля:
http://email.old-web.com/forgot.php
После входа клиент отправляет JOIN Главная, USERS и ROOMS.
4. РЕГИСТРАЦИЯ
клиент: REG логин<TAB>пароль<TAB>секретный_вопрос<TAB>ответ
сервер: OK REG
сервер: ERR код<TAB>текст
Проверки на стороне клиента:
логин 3-20 символов: латиница, цифры, точка, дефис, подчеркивание
пароль не короче 6 символов
секретный вопрос и ответ обязательны
Варианты секретного вопроса в клиенте: любимая книга, девичья фамилия
матери, кличка первого питомца, любимый фильм, город детства, свой вопрос.
Коды ошибок, которые различает клиент: 401, 409, 423, 503.
401 неверный логин или пароль, 409 логин или ник занят,
423 чат закрыт или доступ заблокирован, 503 сервис недоступен.
5. КОМАНДЫ КЛИЕНТА (клиент -> сервер)
MSG текст
обычное сообщение в комнату
ME текст
действие, команда /me
PM ник<TAB>текст
приватное сообщение, команда /pm ник текст
JOIN комната
войти в комнату, команда /join
CREATE комната<TAB>параметр
создать комнату, команда /create. Назначение второго поля неизвестно,
клиент отправляет его пустым.
STATUS текст
сменить статус, команда /status
TOPIC текст
сменить тему комнаты, команда /topic
KICK ник<TAB>причина
выгнать из чата (модератор или администратор)
BAN ник<TAB>минуты<TAB>причина
забанить на указанное число минут
UNBAN ник
снять бан
MOD ник
UNMOD ник
назначить или снять модератора комнаты
ROOMDEL комната
удалить комнату, все ее участники переводятся в Главную
ROOMS
запросить список комнат
USERS
запросить список людей в комнате
COLOR #RRGGBB
сменить цвет ника
PING число
проверка связи, в число клиент кладет GetTickCount(). Сервер должен
вернуть то же число в PONG.
QUIT причина
выйти из чата
SETCFG ключ<TAB>значение
изменить настройку чата (администратор), ключи в разделе 7
BANNERS
запросить список баннеров
BANNERADD url<TAB>параметр<TAB>вес
добавить баннер. Назначение второго поля неизвестно.
BANNERDEL номер
удалить баннер
BANNERTOGGLE номер<TAB>0 или 1
выключить или включить баннер
Только на стороне клиента (на сервер не отправляются):
/ignore ник добавить ник в игнор или убрать из него
/clear очистить окно
/help справка по командам
Список команд, который клиент показывает пользователю:
/pm ник текст, /me текст, /join комната, /create комната, /status текст,
/topic текст, /ignore ник, /kick ник причина, /ban ник минуты,
/unban ник, /rooms, /clear
6. СООБЩЕНИЯ СЕРВЕРА (сервер -> клиент)
HELLO имя_сервера<TAB>версия
ответ на приветствие, клиент пишет "Сервер: имя (версия)"
WELCOME ник<TAB>роль<TAB>название<TAB>motd
вход выполнен. Роли: admin, модератор комнаты, обычный пользователь,
guest.
MSG время<TAB>ник<TAB>цвет<TAB>текст
сообщение в комнате. Время в формате ЧЧ:ММ:СС. Сообщения от ников
из игнор-листа клиент не показывает.
PM время<TAB>от_кого<TAB>цвет<TAB>текст
входящее приватное сообщение, показывается как [приват от ник]
PMSENT время<TAB>кому<TAB>текст
подтверждение отправленного привата, показывается как [приват для ник]
SYS время<TAB>текст
системное сообщение
USERLIST комната
USER ник<TAB>цвет<TAB>статус<TAB>роль
USEREND
список людей: начало, по одной строке USER на человека, конец
JOIN ник
PART ник
человек вошел в комнату или вышел из нее
STATUS ник<TAB>статус<TAB>текст
смена статуса. Статусы: online, away, busy, sleep, а также
"кушаю" и "не беспокоить".
TOPIC кто<TAB>текст
новая тема, клиент пишет "Топик изменил кто: текст"
ROOMLIST
ROOM название<TAB>число_людей<TAB>...
ROOMEND
список комнат: начало, по строке ROOM на комнату, конец
CFG ключ<TAB>значение
CFGEND
настройки чата, ключи в разделе 7
BANNER url
BANNERLIST
BANNERITEM номер<TAB>url<TAB>вес<TAB>включен
BANNEREND
текущий баннер и список баннеров для панели администратора
PONG число
ответ на PING с тем же числом, лаг считается как разница с текущим
временем
OK команда
подтверждение. Команды: REG, SETCFG, BANNERADD, BANNERDEL, BANNERTOGGLE
ERR код<TAB>текст
ошибка, клиент пишет "Ошибка код: текст"
KICKED причина
клиента выгнали, соединение закрывается
BANNED до_какого_времени<TAB>причина
клиент забанен, соединение закрывается
NOTICE текст
объявление для всех, клиент пишет "ОБЪЯВЛЕНИЕ: текст"
Любая другая команда: клиент пишет "неизвестная команда сервера".
7. НАСТРОЙКИ ЧАТА (SETCFG и CFG)
chat_title название чата
motd приветствие при входе
color_bg цвет фона окна чата
color_text цвет обычного текста
color_sys цвет системных сообщений
color_pm цвет приватных сообщений
color_panel цвет панели
banner_rotate_sec как часто менять баннер, секунды
room_ttl_days через сколько дней удаляются пустые комнаты
max_msg_len максимальная длина сообщения
flood_sec антифлуд, секунды между сообщениями
guest_allowed пускать гостей
chat_closed чат закрыт
Цвета по умолчанию: фон #FFFFFF, текст #000000, системные #008000,
приват #800080, панель #9999CC.
Панель администратора открывается для администраторов и модераторов
комнаты. Модератору доступна только модерация.
8. БАННЕРЫ
Картинку баннера клиент скачивает отдельным запросом:
GET путь HTTP/1.0
Host: хост
User-Agent: OldWebChat/1.0
Connection: close
Требования к ссылке:
только http:// (https не поддерживается)
редиректы 301 и 302 не обрабатываются, нужна прямая ссылка на файл
форматы: GIF, JPG, PNG, BMP
размер баннера в окне: 472 на 61
Download raw |
Create new paste