Форум 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)
{
        //
}



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

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