|
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
as3 + сокет
пишу as3 сокет клиента
сервер на java подскажите как обычно для многопользовательской игры делают с помощью сокетов непрерывный обмен данными я имею ввиду общий философский подход то есть 10 раз в секунду от as3 идет запрос на сервер или делается какое либо событие или как то по другому? Добавлено через 4 минуты в частности если на java сервере происходит какое либо событие то как as3 об этом узнает = постоянно опрашивая сервер или будет брать данные по факту какого либо as3 события? |
|
|||||
Если что-то произошло на сервере - сервер должен отослать сообщение об этом флешке, и наоборот. Сокет-соединение непрерывно, по этому (в случае с java) нет необходимости что-то отсылать каждые 2 секунды. Только по событию. Правда в java нет такой модели событий как во flash, но сути это не меняет
__________________
...вселенская грусть |
|
|||||
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
Цитата:
потому все, что нужно знать серверу, пихайте в сокет на клиенте все, что нужно знать клиенту, пихайте в сокет на сервере не пользуйте подход "сериализации" данных, передаваемых серверу или обратно, как это делает протокол AMF. Протокол был придуман голодным программистом и продан за 1 рупию голодному менеджеру Лучше используйте заранее определенный перечень команд, которые кодируются одним-двумя байтами + пара байт для передачи длины сообщения + само сообщение. будет офигенцко быстро и правильно |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Т. е. сериализованные данные в командах передавать ну вообще не труъ?
|
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
имеется ввиду не работать с xml данными, а работать числами
под числа привязать всю логику? |
|
|||||
Цитата:
Цитата:
__________________
...вселенская грусть |
|
|||||
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
Если вы пишете свой сервер и юзаете свой сокет на АС3, то не гут пользовать AMF.
Если вы пользуетесь средствами АС3, то выбора нет - придется пользовать Сериализация команды connect в AMF0 выглядит примерно так 0x03 0x00 0x07 'C' 'o' 'n' 'n' 'e' 'c' 't' . т.е. байт, обозначающий тип данных + 2 байта длина данных + сами данные. (плюс 12 байт заголовка к пакету) Идею Коннекта можно передать на другую сторону меньшим числом байт. Нормальный программер бы уложил все в 2 байта (1 байт тип данных=команда + код команды 1 байт) или в 3 байта (если бы хотел сделать запас на 65 тысяч команд) придумайте свой протокол (это не сложно) и вперед. Опишите все, что должен знать сервер о клиенте и наоборот. Каждой команде назначьте отдельное значение от 0 до 255 (или от 0 до 65535). В зависимости от команды (по вашей задумке) ее будет сопровождать некоторое количество данных (или не будет). Т.е. если например пришла команда 0x01, а мы знаем что за этой командой не должно быть данных, стало быть следующий байт в сокете - новая команда Если команду сопровождает N байт, то за кодом команды пишем 2 байта - длина данных, затем сами данные. И так далее помните, что некоторые дискретные весчи удобно передавать битами. например, если принять, что единица в нулевом бите означает движение вправо, а единица в первом бите означает движение вверх, то число 0х03 будет означать движение вправо вверх когда разрабатываете клиент-серверную технологию, не думайте, что у всех мегабитный анлим. Думайте о людях, экономьте их трафик и процессорное время Последний раз редактировалось Crenth; 27.03.2010 в 15:51. |
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
а какая организация команд на as3 будет слушать сокет?
как это будет выглядеть? |
|
|||||
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
тут все подробно описано
http://help.adobe.com/ru_RU/ActionSc...0204-7cf7.html |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Crenth, это всё понятно, непонятно только, причем тут вообще сериализация. Сериализовать можно с тем же успехом и в байтики.
|
Часовой пояс GMT +4, время: 23:26. |
|
« Предыдущая тема | Следующая тема » |
|
|