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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Attention Клиент не получает сообщения от сокет-сервера.

Всем привет. Столкнулся с проблемой, которую не могу решить несколько дней.

У меня есть тестовый клиент — простейшая флэшка с текстовым полем. Она подключается к сокет-серверу (на джаве) и показывает все сообщения, которые отправляет и получает. Формат сообщений такой: сначала идут 4 байта длины сообщения, потом само сообщение. Сейчас смысловая часть сообщения — просто JSON-строки.

Вообще планируется создание мультиплеерной игрушки, где нужно первым схватить приз, координаты которого случайным образом определяются сервером. И, соответственно, каждому призу присваивается свой id. Первый, чье сообщение о "захвате" приза доходит до сервера — считается победителем. Как только сервер получает такое сообщение, он тут же отправляет всем данные нового приза и, вместе с ними, id схватившего предыдущий приз.

Собственно, проблема. Тестовый клиент при нажатии кнопки мыши отсылает сообщения о своем перемещении по условной карте. При отпускании — отправляет сообщение о том, что он "схватил" приз. При тестировании и в идеале его логи выглядели бы так (условно):

Код:
1. Отсылаю: Привет, сервер, подключи меня! Меня зовут Миша, мои координаты: x=10 y=20

2. Получаю от сервера: Привет, Миша, ты подключен! Вот тебе координаты приза с id=1: x=50 y=60

3. Зажимаю кнопку мыши, отсылаю: Я переместился сюда: x=15 y=25

4. Отпускаю кнопку мыши, отсылаю: Я схватил приз с id=1!

5. Получаю от сервера: Появился новый приз с id=2, его координаты: x=100 y=110, а прошлый приз схватил Миша.
В общем-то все довольно просто. Последние три строчки по-идее, будут повторяться каждый раз, как я щелкаю мышкой. Но в реальности получается так: я запускаю несколько клиентов, они удачно и правильно "знакомятся" между собой, потом некоторое время правильно получают сообщения о новом призе (и, соответственно о том, кто "схватил" старый), но потом странным образом, без всякой закономерности перестают получать сообщения. Некоторые из клиентов получают сообщения от сервера, некоторые из них просто ничего не получают. Если тестировать дальше, то все клиенты становятся "глухими" относительно сервера. При этом ни у одного из клиентов не отрубается соединение с сервером (иначе я бы увидел лог об этом).

Когда клиенты начинают игнорировать входящие сообщения от сервера, логи сервера показывают, что сервер получает сообщения и отрабатывает их корректно. Так же тестировали флэшовых клиентов параллельно с нефлэшовыми (в названиях не разбираюсь, putty или типа того), последние все стабильно получают.

Кто-нибудь может мне подсказать, в каком направлении двигаться и в чем может быть траббл?

P.S. В as3, к сожалению, не силен пока.
__________________
hauts.ru

Старый 17.08.2011, 20:37
arkadattx вне форума Посмотреть профиль Отправить личное сообщение для arkadattx Найти все сообщения от arkadattx
  № 2  
Ответить с цитированием
arkadattx

Регистрация: Apr 2010
Сообщений: 219
Может это?

Старый 17.08.2011, 20:45
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 3  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
кода не будет? будем гадать на кофейной гуще ... ;( (хотя бы часть кода, которая отправляет данные серверу)

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

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

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

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

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


 


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


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