Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Блоги > As3 изучение и немного As2

Оценить эту запись

WMS - хорошая штука !

Запись от in4core размещена 05.06.2011 в 20:58
Обновил(-а) in4core 06.06.2011 в 01:38

Речь пойдет о 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
- тем самым включив Debug режим - много полезного вылезет ))
Запуск происходит из папки bin - startup.bat, - shutdown.but закрывает сервер. ( не уверен, но лучше наверное всегда закрывать его именно так )

3. Наше первое приложение ( examples )

Не будем углубляться в примеры, попробуем самые простые ServerSideModules. Откроем myFirstModule , предварительно запустив сервер, а так же запустив instal.but для создания всех нужных нам каталогов. Запустим нашу флешку - видим фигу. Все правильно, как я и сказал в самом начале разработчики немного не позаботились о нас - и сказали примеры то мы сделали, но чтобы их заценить напишите ка Java скрипт под все это ))
modules.rar Вот оно, что нам нужно. Положить в папочку lib соответственно. Снова запустим - ок должно заработать и в окошке выведет текст, а в логе сервера напишется много веселого. В принципе, чтобы понять как работает сервер, достаточно посмотреть As code который был в myFirstModule.
4. Подключаемся к своим модулям
Тут я набросал небольшой статик класс для взаимодействия с сервером, далее все поясню. Но сначала ваш соотечественник должен собрать для вас jar к которому и будем соединятся образно говоря, а так же разбросать все нужные каталоги...

Код AS3:
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));	
 
		}
	}
 
}
Описывать ServerEvents не буду ибо и так понятно, что там за кастом.
Сразу перейдем к Main

Код AS3:
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 нам нужен, чтобы Сервер нас дергал сам - и что либо возвращал. В примере видно, после того как произойдет соединение с сервером мы запустим один из методов обращения к серверу
Код AS3:
public static function doServerGo( vars:* ) : void {
 
			_nc.call ("doServerGo", new Responder(getServerResponse), vars ) ;
			_sender.onServerGo = onServerGo;
		}
1 параметр есть метод в java модуле который мы дергаем, 2й метод который вызовется когда сервер нам что то отдаст, 3й параметры которые мы передаем серверу.
Посмотрим чуть ниже, присваиваем объекту _sender метод, который выполнится когда сервер нас дернет сам ( не забываем что java модуль имеет метод onServerGo ).
Вот в принципе и вся телега, по итогу выполнения методов будут диспатчиться наши события и выводить то, что просили.
Всего комментариев 18

Комментарии

Старый 05.06.2011 22:21 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Ничего не понял. [x]
Обновил(-а) dimarik 05.06.2011 в 22:52
Старый 05.06.2011 22:41 in4core вне форума
in4core
 
Аватар для in4core
Что имеено? что не понятно спрашивайте, если нужно. Постараюсь ответить
Старый 05.06.2011 22:42 КорДум вне форума
КорДум
 
Аватар для КорДум
2автор: переписать бы статью адекватным языком...
Старый 05.06.2011 22:47 mayakwd вне форума
mayakwd
 
Аватар для mayakwd
спасибо, очень полезно.
Обновил(-а) mayakwd 05.06.2011 в 22:49
Старый 05.06.2011 22:51 Котяра вне форума
Котяра
 
Аватар для Котяра
Ладно - шутки в сторону.
Серьёзно: непонятен смысл статьи. Про что она? Про то что WMS - это кул? Ну так опиши что это такое, для чего служит, сравни с аналогами и т.п.
Если про установку и настройку - тогда расскжи что за конфиги и за что отвечают..
Если это ХеллоВорлд, то расскжи что ты делаешь и зачем.
А так - ни о чём. Поэтому не обижайся.
Старый 05.06.2011 22:56 in4core вне форума
in4core
 
Аватар для in4core
Никто и не обижается. Статья чисто для ознакомления, как подключить и что делать в первую очередь. Может кому что пригодится, когда будет работать с ним. Если непонятен какой нибудь момент описанный тут , пишите вопросы, постараюсь разложить точнее, если непонятен вообще весь смысл - сделать ничего не могу, пишу так как умею. усе
Старый 05.06.2011 23:40 Zebestov вне форума
Zebestov
 
Аватар для Zebestov
in4core, пройдись пожалуйста по тексту (можно и по коду) и убери все пробелы перед знаками препинания (запятые, точки) — очень нехорошо выглядит, портит впечатление о статье.
Старый 06.06.2011 00:40 kemerover вне форума
kemerover
Откуда такая любовь к пробелам…
Старый 06.06.2011 17:17 fish_r вне форума
fish_r
 
Аватар для fish_r
Цитата:
Запуск происходит из папки bin - startup.bat, - shutdown.but закрывает сервер. ( не уверен, но лучше наверное всегда закрывать его именно так )
В батниках, обычно, прописывают последовательную остановку сервисов. Поэтому вырубать сервер прямо, не через батник, всё равно, что выключать компьютер выдернув вилку из розетки. Сервер может подняться, потом, либо с ошибками, либо не подняться вовсе.
Старый 06.06.2011 18:24 in4core вне форума
in4core
 
Аватар для in4core
Ну вот поэтому и советую вырубать так, как положено
Старый 06.06.2011 19:34 gloomyBrain вне форума
gloomyBrain
 
Аватар для gloomyBrain
Цитата:
Сервер может подняться, потом, либо с ошибками, либо не подняться вовсе
Вообще-то java signals api позволяет перед выключением произвести все необходимые действия. Так что батник - это чудо из чудес, на мой взгляд.
Старый 07.06.2011 02:12 fish_r вне форума
fish_r
 
Аватар для fish_r
Вероятно это будет интересно разработчикам WMS... А мы, пока, - имеем то, что имеем
Старый 07.06.2011 11:38 gloomyBrain вне форума
gloomyBrain
 
Аватар для gloomyBrain
Вероятно, это характеризует wms как сервер, который я бы не стал использовать, тем более, что он такой не один
Старый 07.06.2011 13:34 in4core вне форума
in4core
 
Аватар для in4core
WMS не дорогой поэтому + , а так же дается бесплатная версия для разработок, что тоже хорошо.
Старый 07.06.2011 13:57 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Кстати, существуют сервера, которые нельзя пощупать как разработчику перед покупкой?
Старый 07.06.2011 14:28 TERRORist вне форума
TERRORist
 
Аватар для TERRORist
девелопер версия с максимум 10 юзерами - бесплатно
Старый 07.06.2011 14:31 in4core вне форума
in4core
 
Аватар для in4core
Именно так
Старый 08.06.2011 14:49 kackbip вне форума
kackbip
 
Аватар для kackbip
Wowza FMS проигрывает в производительности Adobe Interactive FMS процентов на 10-15, но при этом значительно дешевле(чуть меньше 1000$ против 4500$).
Возможность писать серверные модули на java - вобще большой и жирный плюс.
Единственный их ОГРОМНЫЙ косяк - служба поддержки только по мылу.

Но все равно... я не знаю в какой ситуации имело бы смысл использовать адобовский сервер, кроме необходимости rtmfp(его ведь подрубили в последней версии сервера?).
 

 


Часовой пояс GMT +4, время: 21:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.