![]() |
Интерфейс передачи данных: сервер -> флэш
Доброго времени суток.
В ходе разработки он-лайн игры и разработки общения клиент-сервер (с помощью xml, описывающей экземпляры объектов (классов)) появился такой вопрос: должен ли разработчик клиента жертвовать удобством и быстродействием в угоду удобства и быстродействия серверу, и в какой степени. Интересно ваше мнение. Думаю, почти все скажут, что да, сервер важнее, поэтому приведу конкретный пример: сервер, написанный на си-шарпе, выбирает данные из базы данных, формирует свои классы и делает серриализацию в xml. На выходе получается что-то типа: Код:
<object>Я сколняюсь к варианту: Код:
<object>Код AS3:
Какие есть соображения по этому поводу, и как можно облегчить флэшу доступ к свойствам объекта, если все же оставить первый вариант передачи данных? |
Вопрос небольшой - а зачем вам вообще нужен XML в данном случае? Получается, что сперва сервер у вас "выбирает данные из базы данных", формирует XML, а потом этот XML надо еще парсить, то есть теперь уже разбирать.
Может быть я что-то не понимаю? Разве нельзя данные сразу клиенту отдавать? |
а может компромисс?
Код AS3:
Код AS3:
|
+1 )))
темнит серверный программер либо лень 20 строчек кода подправить, либо написано так, что он боится это трогать но с философской точки зрения лишними расчетами сервер лучше не загружать (например, если игровое время хранится как целое в секундах, то переводить его в удобоваримый вид для выдачи пользователю лучше на клиенте, а не на сервере) но это не рассматриваемый случай |
Цитата:
Цитата:
|
Вас дурят. ))
Вот здесь на пальцах расписана сериализация на дот.нет'е http://www.realcoding.net/articles/x...ps-tricks.html Серверный программист взял самый простой способ сериализации - это да. То что сериализация с использованием атрибутов существенно увеличит нагрузку на сервер - имхо, глупость несусветная. |
http://www.realcoding.net/articles/x...ps-tricks.html
2 вида сериализации: Код AS3:
Код AS3:
одним гуглом пользовались) |
)))))))
я пользовался "негуглом", но сути это не меняет )) |
За ссылку по серриализации спасибо - врага нужно знать в лицо ))))
Я, пожалуй, не совсем верно выразился: дело в том, что элемент Код:
<properties>Т.е. конфликт возникает на рубеже: база ни о чем не знает, для нее все объекты равны и динамически изменяемы, а на флэш-клиенте у меня: за конкретным объектом закреплена конкретная логика, которая ожидает вполне конкретных входных данных (переменных). Под клиентской логикой я подразумеваю вывод графики, игровая логика, конечно же, просчитывается на гейм-сервере. Крупную браузерную игру пишу впервые, и хочется узнать Ваше мнение по поводу этих размышлений. |
это ничего не меняет (почти ничего)
серверному программисту надо правильным образом указать [XmlAttribute] в этом "одном-на-все-случаи-жизни" классе и все. Получите все пропертис не в виде нодов, а в виде атрибутов. Одним из атрибутов, очевидно, будет тип объекта, чтобы было понятно, что с этим всем делать. Там в примере все написано: Код:
public class DataClassКод:
<?xml version="1.0" encoding="utf-8"?>Код:
[XmlRoot("Data")] // изменим имя корневого элементаКод:
<?xml version="1.0" encoding="utf-8"?> |
| Часовой пояс GMT +4, время: 18:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.