Руководство поставило задачу - организовать локальную систему обмена мгновенными сообщениями с возможностью общего чата.
В голове сразу мелькнула мысль поставить джаббер сервер. Почитав форумы, обзоры и прочее я выбрал ejabberd
Ну что сказать, не сервер, а сказка. Скачал, распаковал, проинсталлил и все сразу заработало.
Остановимся на пункте "проинсталлил".сначала как всегда: скачал исходники, начал с configure, а он требует erlang чтоб скомпилиться.
ну, думаю, нет, проходили. Сначала erlang ему, а потом еще пол мира. Качаю готовый .bin файл.
Запускаю и наслаждаюсь: спросил куда ставить, как запускать, кто админ, какой пароль, какой виртуальный хост, ну вообщем все что нужно.
В итоге у меня в /opt/ лежит легковесный, простой в настройке XMPP сервер со своей безой данных (Mnesia), с веб-интерфейсом (указываем порт 5280) и с кучей пользователей.
Настройка заключалась в том, что нужно было организовать общий ростер для всех. а то как начнется авторизация, так хоть комп не включай. Почитав форум на официальном сайте я нашел. Все оказалось очень просто. Открываем веб панель управления -> виртуальные хосты -> "имя_хоста" -> группы общих контактов -> и тет создаем новую группу, назовем ее all (или кому как захочется). После ее создания открываем и пишем:
название - all , описание - группа для всех, члены - @all@ , видимые группы - all. Как вы догадались все дело в пункте "члены". Здесь можно указывать либо каждого пользователя отдельно (user@host admin@host), либо @all@ для всех. Так же хочу попробовать в дальнейшем разбить пользователей на меньшие группы и перепробовать это дело для пункта "видимые группы".
Еще один момент - программу велено было поставить не всем, а только руководителям. Ну а как то обижать ребят, с которыми общаться куда приятнее нежели с руководителями, не хотелось. Выход нашелся! создаем еще один виртуальный хост и по такой же схеме регистрируем всех там. Правда, как сделать это через веб-интерфейс я не нашел, поэтому вручную в конфиге в секции hosts дописал еще один виртуальный хост.
В качестве клиента выбрал Psi - просто потому что он самый распространенный. При подключении клиент выдал мне что ему не нравится сертификат. ну что ж, будем делать новый. После установки сертификаты были, но я решил их переделать:
openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem
openssl rsa -in privkey.pem -out privkey.pem
cat privkey.pem >> server.pem
После этого скопировал server.pem в папку %program files%/Psi/certs и установил его.
А как вы храните историю сообщений пользователей? Если в XML-файле, то имейте в ввиду, что с ростом количества сообщений работа jabber-севера *значительно* замедлится. Лучше хранить историю в базе, например mysql. Я когда-то наступал на эти "грабли".
ОтветитьУдалитьСейчас у меня история сообщений вообще не хранится. Но если понадобится, то я думаю можно будет использовать встроенную БД Mnesia.
ОтветитьУдалитьА вообще, спасибо за дельный совет.