Зачем? Ну, у меня уже был опыт комфортной разработки сайтов на своем «локальном интернете» (пакет Denwer включает Apache, PHP, MySQl и т.д.). Почему бы не поработать таким же образом с локальным волновым сервером, подумал я?
Сказано-сделано и вот, что у меня получилось. На все про все ушло часа три, причем большую часть этого времени занимала возня с установкой дополнительного программного обеспечения.
Процедура установки волнового сервера подробно и с картинками описана по-английски. Есть также русский перевод этой инструкции (сделал Иво Димитров aka Darwin).
Но установка под Windows имеет некоторые особенности, о которых я и хочу написать.
A. Необходимое программное обеспечение
Сразу скажу, что для установки волнового сервера мне понадобилось скачать:
а1. исходные тексты FedOne.
Их можно посмотреть и получить здесь.
a1.1. Mercurial
Поскольку исходники хранятся в системе управления исходными кодами Mercurial, то для их скачивания мне пришлось установить программу-клиент TortoiseHg под Windows.
В настоящее время это версия 0.8.1. — TortoiseHg-0.8.1-hg-1.3.1.exe (14.4Mb)
После установки в контекстном меню виндовского Проводника появляется субменю TortoiseHg. Создайте папку у себя на диске, установите на нее курсор, нажмите правую кнопку мыши и объявите эту папку локальным репозиторием (хранилищем) исходных кодов. Затем синхронизируйте ее с онлайновым репозиторием кодов FedOne — в Repository Settings укажите онлайновый адрес http://code.google.com/p/wave-protocol/source и закачайте файлы. И, наконец, сделайте рабочую копию этих кодов. Для этого выберите пункт Clone Repository, укажите в какую папку выложить исходники.
а2. Openfire
Это кросс-платформенный сервер взаимодействия в реальном времени, основанный на протоколе XMPP (Jabber).
Для Windows в настоящее время есть версия 3.6.4.
Предлагается для загрузки два варианта, я выбрал тот, в который включена Java RE (openfire_3_6_4.exe, 20.9Mb). Но можно, наверное, скачать и более компактный (7.49Mb) архив без JRE (а Java установить отдельно на следующем этапе).
a3. OpenSSL
Он понадобится нам для создания сертификатов нашего сервера. Я взял Windows-версию OpenSSL. А именно Light версию (весит 1Mb, есть еще 7-мегабайтная версия для разработчиков софта, но для наших целей сейчас она излишня).
a3.1.Visual C++ 2008 Redistributables
При установке оно потребовало установить Visual C++ 2008 Redistributables, пришлось скачать и установить еще и этот пакет (1.7Mb). Для этого идем на сервер Microsoft.
Замечу, что после установки VCR и перезагрузки системы инсталлятор OpenSSL все равно ругался и уверял, что VСR в системе не установлен и без него он работать не будет. Но после нажатия «OK» прекрасно все установил и заработал.
a4. Java
JavaRE6 была у меня в системе вместе с Eclipse (возможно обновилась при установке OpenFire). Но при сборке исходных кодов Ant потребовал еще файл tools.jar (около 13Mb). Он, как выяснилось, приходит вместе с пакетом для разработчиков JavaJDK. Что ж, поставим и JavaJDK.
a4.1. JavaJDK
Актуальная на данный момент версия Java6 Update14 (75Mb) доступна для закачки. (Можно взять и тут).
a5. Java-утилита Ant для сборки
Я скачивал версию 1.7.1. (10Mb).
С Ant пришлось повозиться по той причине, что ему, как я писал выше, потребовался tools.jar. Кроме того, я работаю в Windows под аккаунтом «Вадим», написанным кириллицей. Соответственно и каталоги для этой учетной записи Windows делает с кириллическими (русскими) названиями. Ant при сборке считал эти пути ошибочными и никак не хотел собирать проект.
Решил эту проблему установкой «правильных» путей (без «крокозябр») в переменных ANT_HOME, JAVA_HOME и т.п. Кстати, в доках рекомендовано установить в config.sys такую строку для работы с длинными путями: shell=c:\command.com c:\ /p /e:32768
Переменные в Windows можно установить так: правой кнопкой мыши по иконке «Мой компьютер», выбираем «Свойства». Вкладка «Дополнительно», кнопка «Переменные среды».
B. Итак, теперь собственно об установке волнового сервера.
Весь процесс разбивается на четыре этапа:
b1. настройка и запуск XMPP-сервера OpenFire
b2. генерация сертификатов OpenSSL
b3. установка волнового расширения для OpenFire, т.е. собственно настройка вашей копии сервера FedOne и его сборка
b4. запуск сервера и клиента к нему
Пройдем этот путь:
b1. Установка и настройка сервера OpenFire
Настройка OpenFire, пожалуй, самая простая часть установки сервера. Запускаете инсталлятор и следуете указаниям инструкции. По-английски или по-русски.
Поэтому повторяться не буду, но для нашего случая есть две тонкости — а) в качестве домена своего XMPP-сервера укажите "localhost", b) запомните, как назвали субдомен, используемый вашим FedOne (я назвал его "wave"), и секретное слово (shared secret) к нему (в моем примере — "foobar"). Это нам понадобится при компиляции и запуске сервера.
b2. Генерация сертификатов
По-английски описано здесь.
Все элементарно, Ватсон. Идем в C:\OpenSSL\bin\ и запускаем openssl.exe с параметрами (см. ниже). Нужно будет ответить на несколько вопросов — код страны, название города и т.п. и получить в итоге 2 файла.
Можно сделать такой genss.bat-файл:
openssl genrsa 1024 | openssl pkcs8 -topk8 -nocrypt -out %1.key
openssl req -new -x509 -nodes -sha1 -days 365 -key %1.key -out %1.cert
и запускать его так: genssl.bat wave, где wave — имя для генерируемых файлов ключей и сертификата (wave.cert и wave.key).
Кладем сгенерированные файлы в каталог с исходниками волнового сервера.
b3. Компиляция сервера и клиента
Просто перейдите в папку с исходниками сервера и скажите: «ant». (Можно предварительно прогнать тест — «ant test»).
Если у вас правильно указаны переменные и пути, то после компиляции вы получите 2 файла (fedone-0.2.jar и fedone-client-0.2.jar) в папке /dist
b4. Запуск вашего сервера и клиента к нему
Волнующий момент. :) Сделайте 2 bat-файла, для запуска сервера run-server.bat и для запуска клиента run-client.bat.
run-server.bat:
java -jar dist/fedone-0.2.jar --client_frontend_hostname=127.0.0.1 --client_frontend_port=9876 --xmpp_component_name=wave --xmpp_server_hostname=localhost --xmpp_server_ip=localhost --xmpp_server_port=5275 --xmpp_server_secret "foobar" --xmpp_server_ping="" --certificate_private_key=wave.key --certificate_files=wave.cert --certificate_domain=localhost --waveserver_disable_verification=true
p.s. Несколько пояснений: вот и пригодились нам «localhost» (наш локальный домен), «wave» (имя расширения для OpenFire) и «foobar» (секретное слово).
run-client.bat:
java -jar dist/fedone-client-0.2.jar %1@localhost 127.0.0.1 9876
Запуск клиента: run-client.bat имя_пользователя, например: run-client.bat vadbars
Итак, все готово? Он сказал, «Поехали!»
Раз. Запускаем OpenFire. В трее — желтая лампочка.
Два. Запускаем run-server. Досовское окно с протоколом запуска. Посмотрите в сообщениях, что сервер нашел OpenFire и подключился к нему. Можно посмотреть это же в админке самого OpenFire (раздел «Extentions»).
Три. Запускаем run-client. Тоже черно-белое досовское окно с какими-то малопонятными значками. А вы чего ждали? :)
Можно полюбоваться на скриншоты.
C. Работа с волнами на своем сервере и со своим клиентом
В данный момент (август 2009 года) FedOne поддерживает всего несколько команд (да-да, пока нет никакого GUI!):
/connect user@domain server port Cоединиться с server:port как участник user@domain
/open entry open Открыть волну, которая есть у вас во Входящих. Надо указать номер волны (от 0). Например: /open 1
/new Создать и открыть новую волну
/add participantId Добавить участника к волне
/remove participantId Удалить участника из волны (хе-хе, этого пока нет в клиенте Gogoole Wave Sandbox! Наш сервер круче. :)
/quit Завершить работу клиента
Автор: Вадим Барсуков
примеры разработок разработка сайтов http://web-miheeff.ru примеры разработок
ОтветитьУдалитьметоды разработки разработка сайтов http://web-miheeff.ru методы разработки
ОтветитьУдалить