Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Потери сообщений в XMLSocket? (http://www.flasher.ru/forum/showthread.php?t=115373)

DarkLight 27.08.2008 23:33

Потери сообщений в XMLSocket?
 
Исходные данные: имеется многопользовательское приложение, которое обменивается данными с сервером через XMLSocket. Перед отсылкой данных проверяется, подсоединен ли сокет.

Проблема: неожиданно возникла ситуация, когда некоторые запросы от клиента не доходят до сервера, при этом при расположении клиентской и серверной части на одном компьютере дропа не происходит, а при нахождении в разных компьютерах в рамках одной локальной сети - да. 2 клиентских части могут быть запущены на одном или разных компьютерах - на результат не влияет. Версия flash player-а везде одна - 9.0.124.0 Досрочного закрытия сокета не наблюдается.

Вопрос: каким образом одинаковый swf при соединении с одинаковым сервером могут вести себя по разному в зависимости от компьютера к которому подключаются?

P. S. Проблема появилась совершенно неожиданно, и т к клиент заявляет, что отослал запрос, а сервер - что запрос не приходил, что делать - не понятно.

wvxvw 27.08.2008 23:49

Я сталкивался со странной ситуацией, когда пакеты не приходили изза оверфлоу буфера, опытным путем пришли к цифре 4Кб (макс размер буфера). При чем не приходил именно первый пакет, остальные могли быть и больше (в смысле, если первый пакет превышал 4К, то все, что сверх этого не посылалось). Но не уверен, что это релевантно...

AL.exe 28.08.2008 00:32

Можно пойти через костыли и посылать каждый запрос несколько раз, присвоив ему какой-нибудь идентификатор, чтобы сервер несколько раз не реагировал.

BlooDHounD 28.08.2008 00:49

у нас от многотысячной аудитории такой жалобы не поступало.

AL.exe 28.08.2008 00:51

А проблема не может быть на уровне сети? Может, режется что-то? Пробовали на машинах в другой сети/ковырять настройки роутера/шлюза?

Еще можно трафик поснифать...

Цитата:

Сообщение от BlooDHounD (Сообщение 760651)
у нас от многотысячной аудитории такой жалобы не поступало.

Оффтопом: зато пароль восстановить уже второй день в Destiny не могу. Все время говорит, что сервер недоступен.

BlooDHounD 28.08.2008 01:51

AL.exe, я про TimeZero.
Destiny на бинарном сокете, и сейчас действительно практически не поднимается.

Chas 28.08.2008 11:57

Да, таких проблем не должно быть.
А может быть так, что приходят сразу несколько xml'ек от сервера подряд(скапливаются из-за лага), что не предусмотрено клиентом и он обрабатывает только первую, например? Не работал с xmlsocket, у бинарного сокета такое случается, если лаг в сети достаточный.

DarkLight 28.08.2008 21:59

Решил днем проблему=) По сути, Chas был прав. Собственно, при отправке 2 сообщений с малым интервалом они склеиваются, причем as3-шный XMLSocket это, похоже, не предусмотрел, а потому все, что после 0го символа дропается. Проблему решил переходом на бинарный сокет с ручной проверкой наличия нулевого байта не в конце запроса, и чтения в этом случае всех кусков отдельно. Вобщем написал над бинарным сокетом собственную реализацию XMLSocket, и все стало замечательно=)

Вывод: при наличии вероятности отправки нескольких сообщений подряд использование XMLSocket-а чревато эзотерическими проблемами:)

AL.exe 30.08.2008 17:28

Надо добавить в FAQ :)


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

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