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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.04.2011, 11:04
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 1  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Question Уникальность временного интервала

Доброго время суток.
Если ли альтернатива данной записи на серверном AS (FMS3.5)?
Код AS1/AS2:
tim = new Date();
client.lead = tim.getTime();
она не нравиться тем что это во-первых две строчки кода на одну переменную, а эт слишком, да и результатом является "1304141496917"- 13-ти значное число, обрезать,делить,округлять так же считаю не логичным, так как это линяя трата ресурсов процессора, причём что востребованность данных чисел идёт в каждом пакете данных. Пробывал
Код AS1/AS2:
getTimer();
сервер ругается, случайная генерация не пойдёт так как нужно чётка инкрементация где под инкрементом подразумевается определённый промежуток времени( к примеру 10мс) и по ней идёт синхронизация.
Заранее благодарен за любую оказанную помощь.
__________________
return this...

Старый 30.04.2011, 11:23
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Код AS3:
client.lead = (new Date()).getTime();
Код AS3:
client.lead = (tim = new Date()).getTime();
Возможно, стоит вызывать tim = (new Date()).getTime(); не для каждого пакета, а по таймеру - тогда можно будет "число, обрезать,делить,округлять". Возможно, вам не надо собственно время и достаточно инкрементить на 1 для каждого пакета некую переменную, которая будет уникальной. Совершенно точно надо подучить русский.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 30.04.2011, 12:03
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 3  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Извините если ломаю русский.

Суть в том что мне нужно определённо временная шкала потому что по ней идёт синхронизация картинки на сервере и на всех клиентах, а реализовал это Я так:
1. Клиент (дальше К) подключается к серверу (дальше С)
2. С. отсылает К. своё время в миллисекундах
3. Как только К. получает это время он тут же переводит своё внутреннее локальное время на серверное и return'oм снова отправляет это время на С.
4. С. получив эти данные, отнимает от текущего времени время считанное в первом запросе. В итоге мы получаем время задержки (ВЗ) при передачи данных от сервера к пользователю и обратно.
5. После чего С. отправляет это ВЗ на К. который переводит назад своё время ровно на ( В3 / 2 ) (требует доработки но пока считаем что время приёма и передачи равносильно, то-есть переводим время на тот промежуток времени за который данные шли клиенту).

При такой схеме данные посланные с сервера буду отображать практически одновременно с данными реально происходящих на сервере, исключением конечно является now-действия, но в целом принцип прост.
На примере:
Сервер посылает клиентам что объект Х в 12:00:00 из позиции А передвигается в позицию Б и должна там быть ровно в 12:00:30. Клиент получив такие данные в 12:00:02, берёт своё локальное время, исчисляет из поступившихся данных точку где объект уже должен находиться, быстро переносит объект на эту позицию и после продолжает движение в точку Б ровно к 12:00:30. Потому время тут играет ключевую роль, вот только при множественных запросах считаю довольно не логичным использовать 13-ти значные данные, да еще и исчисление которых происходит в две команды.

Добавлено через 7 часов 16 минут
ладно)
__________________
return this...

Старый 30.04.2011, 20:59
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 4  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Ну можно считать время только в моменты тика сервера (клиент время отправки пакета отошлёт сам и может читерить в пределах тика, хрен с ним). И отнимать от (new Date()).getTime() время старта сервера, чтоб "число было поменьше".
Только вот оно тормозить на таких моментах ещё не начало и далеко не факт, что начнёт) Вообще FMS для жесткого реалтайма может не лучшим вариантом быть. И если уж выбрали его, то заморачиваться, что оно там будет тормозить - не стоит, по-моему.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 01.05.2011, 01:31
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 5  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Просто пишу себе игрушку и хочу что бы всё было идеально ровно). А так я больше беспокоюсь за тех у кого слабый пинг. Потому что меньше требований - больше уников)
__________________
return this...

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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