Как стать автором
Обновить

Как может выглядеть XMPP в ОС Inferno(мысли в слух).

Время на прочтение 2 мин
Количество просмотров 1.3K
Обычно, реализацию протокола на низком уровне, берут на себя библиотеки. Решил подумать(пофантазировать): как должна работать подобная «библиотека» в Inferno ОС, если все представить в виде файлов.

Утилита для реализации XMPP, в дальнейшем, просто, XMPP, устанавливает соединение с JABBER сервером, в результате, в точке монтирования /mnt/xmpp, создаются файлы для работы и управления сервером:

presence — файл куда пишем свой статус и команды(unavailable, например), параметры show — как отображать(away — временно ушел, chat — чат, dnd — ресурс занят или не беспокоить...), status – статус адресата(онлайн, готов к чату… пишет сообщение), priority — приоритет ресурса, — мы «сказали» серверу как нас отображать;
файл message, откуда будем читать сообщения от сервера.
Работа с ростером. Необходимо файлами отобразить всю информацию о соответсвующем JabberID и манипулировать ими.
Пример получения информации с сервера:

<item jid='romeo@example.net'
name='Romeo'
subscription='both'>
<group>Friends</group>
<group>Body</group>
</item>


Для каждого пункта в ростере используются параметры: jid, subscription, name, <group>.
Возможно в нашей папке монтирования должны быть папки с JID-ами адресатов, одна папка – один адресат, к примеру папки:

iuser@jabber.org
secondusr@xmpp.ru,

В каждой из них файлы:

item — текстовый файл откуда читаем/пишем параметры: name — как отображать название данного контакта, subscription — подписка, group — группа в которой состоит контакт;

присутствие и управление подпиской адресата определяется тэгом <presence>, значит нам нужен такой же файл:

presence — файл куда пишем команды(subscribe, unsubscribe, probe или пустую строку), читаем информацию о пользователе и его статус: параметры show, status, priority;

message – откуда/куда читаем/пишем сообщения с параметрами type, subject и body(записав туда текст — он уходит получателю, отсюда читаем полученное сообщение). Например:
echo hello>/mnt/xmpp/iuser@jabber.org/message отправит текст «hello» адресату iuser@jabber.org.
Создавая папку — автоматически создается контакт.
К сожалению я не знаю основательно ни Inferno, ни всех возможностей XMPP – это все в процессе.
Очень интересно мнение окружающих: как должно быть?:-)
Теги:
Хабы:
+3
Комментарии 3
Комментарии Комментарии 3

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн