Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Подскажите с выбором сервера (http://www.flasher.ru/forum/showthread.php?t=108182)

Rzer 17.02.2008 01:53

Подскажите с выбором сервера
 
Собрана игра на локальной машине на подобие soldat.pl с мысленным разделением на клиентскую и серверную часть. Программировалась на as3. Читая этот раздел форума обнаружил, что появилось достаточно много других (помимо FMS) серверов, работающих с Flash . Поэтому у меня несколько вопросов:

1) Какие сервера, поддерживают as3 на серверной стороне? Наиболее критичный для меня пункт при выборе сервера.
2) Я так понимаю что сервера, работающие через http, а не через rtmp (или что-то подобное) должны проигрывать в скорости отклика (ping). Отсюда вопрос какой сервер использовать для получения наибольшего результата (меньшего времени задержки отклика)?

3) Хотелось бы по минимуму загружать канал и передавать данные например в типе byteArray или в чем-то подобном.

Подскажите пожалуйста, изходя из всех критериев - какой сервер наиболее подходит для меня. Заранее спасибо.

LinuxVideo 17.02.2008 03:30

Лучше всего самописный сервер. Написать не так уж и сложно (или заказать не слишком дорого). На крайняк есть xinetd, универсальный сервер, только CGI приклеить. Зато трафик - минимальный, скорость максимальная.

> Я так понимаю что сервера, работающие через http, а не через rtmp (или что-то подобное) должны проигрывать в скорости отклика (ping).

Бред. http может больше трафика сожрать, и все.

CrazyFlasher 17.02.2008 13:01

http://www.smartfoxserver.com/ - отличная штука...клиентскую часть присобачить к такому серваку не составит труда...правда платная, если больше 20 коннектов ;-)

Rzer 17.02.2008 13:39

А все эти сервера поддерживают as3 на своей стороне?

CrazyFlasher 17.02.2008 13:42

ну а в описании не почитать?

Rzer 17.02.2008 20:24

2 CrazyFlasher: Действительно этот сервер мне подходит. И почти не требует дополнительных знаний - всё интуитивно понятно. Спасибо за ссылку.

Rzer 19.02.2008 20:56

При болле детальном изучении сервера, оказалось что он имеет ряд значительных недостатков. Во первых указанная поддержка as3 работает только на стороне клиента (походу дела сервер не был предназначен для обработки у себя информации при помощи as, что уже говорить о применении физического движка - всё в запущенном виде и сделано в виде заплатки - называется сделай так чтобы было похоже на as3 только вот без импорта классов, переменные объявляй по другому, поддержка типов частичная, пиши в одном классе), что разумеется допустимо только при разработке игр типа колобка.

Насчет пинга. Получаемый пинг (В примере с сайта) указан не верно (в документации упоминается, что время отклика получается из времени получения информации, что в два раза меньше реального). Зачем то прилипили embeded web server (наверно для тех кто не может настроить crossdomain).

Единственное, что порадовало, так это продуманная система комнат, модераторов, и списков друзей.

Вывод: Сервер не подходит. Использую готовый движок 3 версии языка из классов as is. Значит придется обращаться к старому доброму FMS 3. Или всё таки есть альтернативы?

CrazyFlasher 19.02.2008 23:50

O_o ну тут два варианта:
1. либо вы плохо разбирались в этом сервере (глубоко не прочитали документы и не посмотрели примеры)
2. либо у вас не достаточно знаний, ибо то что вы написали, полная неправда. Сейчас на его основе разрабатываем виртуальный мир (AS3).

Очень удобный сервер, также server-side extensions для него писать (лучше на яве) очень быстро и просто.

Советую потратить денёк-два на разбор примеров и внимательное чтение документации.

Rzer 20.02.2008 02:02

После прочтения документации (в которой мало упомянуто о программировании серверной части) отправляюсь в папку sfsExtensios в которой храняться примеры серверной логики. Ни в одном примере я не заметил нестандартного типа - только типы стандартных объектов общих для явы и as (Такое ощущение что типы просто опускаются) Находим пример E4X_example.as: разметка не соблюдена, импорта классов нет.


В примерах есть только импорт класса на примере ява скрипта, что не есть хорошо. Такое ощущение, что используется чистой воды ява с интерпритатором.

2 CrazyFlasher: по твоему совету завтра буду проверять работает ли импорт класов, имеются ли стандартные типы и интерфейсы (к примеру EventDispatcher) на сервере.

Rzer 20.02.2008 18:32

Пытаюсь создать EventDispatcher на сервере и ничего не получается:

Пробую так:

Код:

var a = new flash.events.EventDispatcher ();
var a = new EventDispatcher ();

Или так (как в случае явы):
Код:

var a =  flash.events.EventDispatcher;
var a = EventDispatcher;

Во всех четырех вариантах никакого результата. 2 CrazyFlasher: используете ли Вы на стороне сервера EventDispatcher и, если да, не затруднит ли написать как?

p.s. Пример серверного as3 выладываю. Разве тут что-то есть из as 3 и нет ни тега package и class - куда делать импорт классов?

Код:

/*
* E4X Example based on the  XML Parser Example
*
* Demonstrates how to use E4X languages inside an actionscript extension
*/
var xmlObj = null

function init()
{
        var xmlData = _server.readFile("sfsExtensions/data/books.xml")
        xmlObj = new XML(xmlData)
        readTheXmlFile()

        var books = xmlObj.bookList.book.(@year == 2003)
        for (var i = 0; i < books.length(); i++)
        {
                trace("Title    : " + books[i].@title)
                trace("Author  : " + books[i].@author)
                trace("-------------------------------------")
        }*/
       
        // Example #2: match a substring in name attribute
        /*
        var books = xmlObj.bookList.book.(@title.toString().indexOf("Java") > -1)

        for (var i = 0; i < books.length(); i++)
        {
                trace("Title    : " + books[i].@title)
                trace("Author  : " + books[i].@author)
                trace("-------------------------------------")
        }
        */
       
}

/*
* Read and parse the XML file
*/
function readTheXmlFile()
{
        // Show the <collectionName> and <collectionOwner> nodes
        trace("Collection Name: " + xmlObj.collectionName)
        trace("Collection Owner: " + xmlObj.collectionOwner + newline)
       
        var bookList = xmlObj.bookList.book

        for (var i = 0; i < bookList.length(); i++)
        {
                trace("Title    : " + bookList[i].@title)
                trace("Author  : " + bookList[i].@author)
                trace("Year    : " + bookList[i].@year)
                trace("Publisher: " + bookList[i].@publisher)
                trace("-------------------------------------")
        }
}


/*
* This method is called by the server when an extension
* is being removed / destroyed.
*
* Always make sure to release resources like setInterval(s)
* open files etc in this method.
*
*/
function destroy()
{
        //
}



/*
*
* Handle Client Requests
*
* cmd                = a string with the client command to execute
* params        = list of parameters expected from the client
* user                = the User object representing the sender
* fromRoom        = the id of the room where the request was generated
*
*/
function handleRequest(cmd, params, user, fromRoom)
{
       
        //
}


/*
* This method handles internal events
* Internal events are dispactched by the Zone or Room where the extension is attached to
*
* the (evt) object
*/
function handleInternalEvent(evt)
{
        //
}


CrazyFlasher 21.02.2008 00:53

Как я понял вы не вникли в связку клиента и сервера. То что вы сюда выставили - это server extension, который выполняется на стороне сервера...его лучше писать на яве. В документации на сайте (или та, что скачивается при установке сервера) подробно описывается как это делать. Server extension используются для расширения сервеной части, а никак не клиентской...Как мне показалось, вы вообще не смотрели примеры клиентов, которые находятся в папке Examples. Там есть примеры для AS3 (правда для флекс, но это не составляет проблемы в них разобраться). Кроме того там также выложены примеры рабочих server extension'ов, которые функционируют вкупе с клиентом.

Rzer 21.02.2008 01:54

Бррр. Я везде писал что я имею ввиду скрипты на стороне сервера - прочитайте подробнее. Что на стороне клиента работает - это мне прекрасно понятно и flex и прочая дребедень - (она бы и и при обмене с пхп файлом также бы прекрасно работала).

CrazyFlasher 21.02.2008 11:26

там написано, что расширять сервер можно следующими вариантами:
1. AS1
2. python
3. Java
Советую использовать Java. Примеры в Examples есть

Shaman911 16.03.2008 03:59

итак CrazyFlasher обеими руками за http://www.smartfoxserver.com/
а Rzer нуждается в более подходящем сервере для своего детища.

Какой я могу сделать вывод для себя?

Если я хотел бы что бы мой проект был защищен и унифицирован, то
1. В случае с необходимостью минимального отклика сервера по запросу клиентазаказал бы сервер на с++ под концигурацию интерфейса уже готовых клиентов и БД

2. В случае экономии средст и времени
потратился временем и немногоим капиталом на готовый сервер и подогнул бы под него клиент или что там уже готово.

3. (советую) для унифицирования сервера и более динамичного контроля по апдейтам и возможности использования модульной системы работы сервера
вложил средьнюю сумму в написание РНР сервера, учитывая что его можно подогнуть под протоколы как ХТТП и ТСР и настроить как заголовочьное так и сокетное общение клиентсервера.
Причём, что бы не парись себе мозг, рассмотрел бы вариан сложноуровневой организации обменно хранительного процесса.
и часть работы сервера, расчитаную на обработку расчётных формул изменения контента базы данных, выполнять отдельно на сервере базы данных (как средствами РНР так и самого языка запросов БД), а часть нагрузки для проведения анализа и проверки поступаемой информации, отправил бы на сервер приёма и отдачи информации.

Получена топология называется многоуровневая структура взаимосвязи клиент-сервер-хранилище
Многие принебрегают этим, о чём потом желеют.

З.Ы. Это так, мысли в слух, что мгут наталкнуть на выбор сервера как самописного так и кемтозагатовленого.


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

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