WMS - хорошая штука !
Речь пойдет о Wowza Media Server . Штука полезная, может транслировать видео, аудио используя протокол rtmp . Сервер использует Java движок.
Как пишут разработчики - не нужно знать Java чтобы работать с WMS.
Что подразумевается под этими словами? - То, что рядом с вами сидит Java программист который должен для вас все настроить и запустить. К сожалению так - даже примеры приложений у вас не получится оценить - если за вас не сделают пару телодвижений.
1. Установка и каталоги.
Установка простая - нажали установить - установили. Теперь у вас в programmFiles имеется защищенная папочка Wowza Media Server x.x.x ( version ). Заходим в нее
1. Applications - создаются каталоги автоматически при запуске и тестировании сервиса*
2. Bin - тут все что относится к запуску и остановке сервера.
3. Conf - наборчики xml файлов отвечающий за существующую конфигурацию приложений ( после установки модуля для примеров - папки создаются автоматом )
4. Lib - соотв Jar файлы ваших приложений и подключенных модулей.
2. Запуск и настройка
Зайдя в папку Conf мы можем созерцать файл log4j.properties. Все что относится к настройки сервера в ручную. Зайдем туда ( блокнотом ) первую строчку заменим на
Код:
#log4j.rootCategory=INFO, stdout, serverAccess, serverError log4j.rootCategory=DEBUG, stdout, serverAccess, serverError
Запуск происходит из папки bin - startup.bat, - shutdown.but закрывает сервер. ( не уверен, но лучше наверное всегда закрывать его именно так )
3. Наше первое приложение ( examples )
Не будем углубляться в примеры, попробуем самые простые ServerSideModules. Откроем myFirstModule , предварительно запустив сервер, а так же запустив instal.but для создания всех нужных нам каталогов. Запустим нашу флешку - видим фигу. Все правильно, как я и сказал в самом начале разработчики немного не позаботились о нас - и сказали примеры то мы сделали, но чтобы их заценить напишите ка Java скрипт под все это ))
modules.rar Вот оно, что нам нужно. Положить в папочку lib соответственно. Снова запустим - ок должно заработать и в окошке выведет текст, а в логе сервера напишется много веселого. В принципе, чтобы понять как работает сервер, достаточно посмотреть As code который был в myFirstModule.
4. Подключаемся к своим модулям
Тут я набросал небольшой статик класс для взаимодействия с сервером, далее все поясню. Но сначала ваш соотечественник должен собрать для вас jar к которому и будем соединятся образно говоря, а так же разбросать все нужные каталоги...
package server.connection { import flash.events.EventDispatcher; import flash.events.NetStatusEvent; import flash.net.NetConnection; import flash.net.Responder; /** * ... * @author in4core */ public class WMSTest { private static var _nc:NetConnection = new NetConnection(); private static var _sender:Object = new Object(); private static var _listener:EventDispatcher; public static function doServerGo( vars:* ) : void { _nc.call ("doServerGo", new Responder(getServerResponse), vars ) ; _sender.onServerGo = onServerGo; } private static function onServerGo(vars:*):void { _listener.dispatchEvent( new ServerEvents(ServerEvents.ON_GO , vars )); } private static function getServerResponse(vars:*):void { _listener.dispatchEvent( new ServerEvents( ServerEvents.ON_RESPONSE , vars )); } public static function connect(address:String , listener:EventDispatcher ):void { _nc.connect(address); _nc.client = _sender; _listener = listener; _nc.addEventListener(NetStatusEvent.NET_STATUS, connectionStatus); } public static function disconnect():void { _nc.close(); } private static function connectionStatus(e:NetStatusEvent) :void { const info : String = "NetConnection.Connect.Success" ; if (e.info.code == info ) _listener.dispatchEvent( new ServerEvents(ServerEvents.CONNECT)); } } }
Сразу перейдем к Main
var disp:EventDispatcher = new EventDispatcher(); WMSTest.connect ( 'rtmp://localhost/userModule ' , disp ); disp.addEventListener ( ServerEvents.CONNECT , onConnect ) disp.addEventListener ( ServerEvents.ON_RESPONSE , onResp ) disp.addEventListener ( ServerEvents.ON_GO , onGo ) function onConnect(e:ServerEvents):void { trace('ok'); WMSTest.doServerGo ( 'hello server '); } function onResp(e:ServerEvents):void { trace(e.vars); } function onGo(e:ServerEvents):void { trace(e.vars); }
Вопервых понятно что соединение идет через localConnection.
_listener нам нужен для того, чтобы перехватывать ответ от сервера, а вот _sender нам нужен, чтобы Сервер нас дергал сам - и что либо возвращал. В примере видно, после того как произойдет соединение с сервером мы запустим один из методов обращения к серверу
public static function doServerGo( vars:* ) : void { _nc.call ("doServerGo", new Responder(getServerResponse), vars ) ; _sender.onServerGo = onServerGo; }
Посмотрим чуть ниже, присваиваем объекту _sender метод, который выполнится когда сервер нас дернет сам ( не забываем что java модуль имеет метод onServerGo ).
Вот в принципе и вся телега, по итогу выполнения методов будут диспатчиться наши события и выводить то, что просили.
Всего комментариев 18
Комментарии
05.06.2011 22:21 | |
Ничего не понял. [x]
|
|
Обновил(-а) dimarik 05.06.2011 в 22:52
|
05.06.2011 22:41 | |
Что имеено? что не понятно спрашивайте, если нужно. Постараюсь ответить
|
05.06.2011 22:42 | |
2автор: переписать бы статью адекватным языком...
|
05.06.2011 22:47 | |
спасибо, очень полезно.
|
|
Обновил(-а) mayakwd 05.06.2011 в 22:49
|
05.06.2011 23:40 | |
in4core, пройдись пожалуйста по тексту (можно и по коду) и убери все пробелы перед знаками препинания (запятые, точки) — очень нехорошо выглядит, портит впечатление о статье.
|
06.06.2011 00:40 | |
Откуда такая любовь к пробелам…
|
06.06.2011 18:24 | |
Ну вот поэтому и советую вырубать так, как положено
|
06.06.2011 19:34 | |
Цитата:
Сервер может подняться, потом, либо с ошибками, либо не подняться вовсе
|
07.06.2011 02:12 | |
Вероятно это будет интересно разработчикам WMS... А мы, пока, - имеем то, что имеем
|
07.06.2011 11:38 | |
Вероятно, это характеризует wms как сервер, который я бы не стал использовать, тем более, что он такой не один
|
07.06.2011 13:34 | |
WMS не дорогой поэтому + , а так же дается бесплатная версия для разработок, что тоже хорошо.
|
07.06.2011 13:57 | |
Кстати, существуют сервера, которые нельзя пощупать как разработчику перед покупкой?
|
07.06.2011 14:28 | |
девелопер версия с максимум 10 юзерами - бесплатно
|
07.06.2011 14:31 | |
Именно так
|
Последние записи от in4core
- Система диалогов, создаем подобие old School типа Fallout. (07.05.2014)
- MVC в игорной индустрии (27.11.2012)
- Якорь мне .... ))) Или History API (06.11.2012)
- FSD - учим php/sql (28.06.2012)
- I4Logger - простой и компактный логгер (06.05.2012)