|
|
|||||
ветеран форума
|
Потери сообщений в XMLSocket?
Исходные данные: имеется многопользовательское приложение, которое обменивается данными с сервером через XMLSocket. Перед отсылкой данных проверяется, подсоединен ли сокет.
Проблема: неожиданно возникла ситуация, когда некоторые запросы от клиента не доходят до сервера, при этом при расположении клиентской и серверной части на одном компьютере дропа не происходит, а при нахождении в разных компьютерах в рамках одной локальной сети - да. 2 клиентских части могут быть запущены на одном или разных компьютерах - на результат не влияет. Версия flash player-а везде одна - 9.0.124.0 Досрочного закрытия сокета не наблюдается. Вопрос: каким образом одинаковый swf при соединении с одинаковым сервером могут вести себя по разному в зависимости от компьютера к которому подключаются? P. S. Проблема появилась совершенно неожиданно, и т к клиент заявляет, что отослал запрос, а сервер - что запрос не приходил, что делать - не понятно.
__________________
4am is time to rock |
|
|||||
Modus ponens
|
Я сталкивался со странной ситуацией, когда пакеты не приходили изза оверфлоу буфера, опытным путем пришли к цифре 4Кб (макс размер буфера). При чем не приходил именно первый пакет, остальные могли быть и больше (в смысле, если первый пакет превышал 4К, то все, что сверх этого не посылалось). Но не уверен, что это релевантно...
__________________
Hell is the possibility of sanity |
|
|||||
Можно пойти через костыли и посылать каждый запрос несколько раз, присвоив ему какой-нибудь идентификатор, чтобы сервер несколько раз не реагировал.
__________________
Дело не в тебе |
|
|||||
стервочка (я мужик)
|
у нас от многотысячной аудитории такой жалобы не поступало.
|
|
|||||
А проблема не может быть на уровне сети? Может, режется что-то? Пробовали на машинах в другой сети/ковырять настройки роутера/шлюза?
Еще можно трафик поснифать... Оффтопом: зато пароль восстановить уже второй день в Destiny не могу. Все время говорит, что сервер недоступен.
__________________
Дело не в тебе Последний раз редактировалось AL.exe; 28.08.2008 в 00:55. |
|
|||||
стервочка (я мужик)
|
AL.exe, я про TimeZero.
Destiny на бинарном сокете, и сейчас действительно практически не поднимается. |
|
|||||
[+1 14.08.08]
[+1 20.08.08] |
Да, таких проблем не должно быть.
А может быть так, что приходят сразу несколько xml'ек от сервера подряд(скапливаются из-за лага), что не предусмотрено клиентом и он обрабатывает только первую, например? Не работал с xmlsocket, у бинарного сокета такое случается, если лаг в сети достаточный.
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
ветеран форума
|
Решил днем проблему=) По сути, Chas был прав. Собственно, при отправке 2 сообщений с малым интервалом они склеиваются, причем as3-шный XMLSocket это, похоже, не предусмотрел, а потому все, что после 0го символа дропается. Проблему решил переходом на бинарный сокет с ручной проверкой наличия нулевого байта не в конце запроса, и чтения в этом случае всех кусков отдельно. Вобщем написал над бинарным сокетом собственную реализацию XMLSocket, и все стало замечательно=)
Вывод: при наличии вероятности отправки нескольких сообщений подряд использование XMLSocket-а чревато эзотерическими проблемами
__________________
4am is time to rock |
|
|||||
Надо добавить в FAQ
__________________
Дело не в тебе |
Часовой пояс GMT +4, время: 20:43. |
|
« Предыдущая тема | Следующая тема » |
|
|