Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   XML Socket etc (http://www.flasher.ru/forum/showthread.php?t=113432)

wvxvw 30.06.2008 19:59

хм... мне тяжело судить... а onClosed() не вызывается случайно?
т.е. еще раз, onConnect вызывается, а оnData - нет?

Alex_beginner 30.06.2008 20:25

В сервере вроде бы все нормально.

Тут возможно дело в политике безопасности. Надо попробовать allowDomain.

Потом, что то я невижу в флешевском коде вот это:

Код:

XMLSocket.connect(server, port);
Может у Вас соединение как то подругому инициализируется.

Проверьте порты и адреса, мож в этом дело.

Ruffus 30.06.2008 22:44

onClose вызывается когда надо, например когда сервер отключается.
Хотелось бы знать, нет ли способа застраховаться от проблем с безопасностью. Что там allowDomain? У меня на локалхост подключение идёт. Этот код я не включил, потому что соединение проходит. Я вижу что проходят по трассировке из обработчика onConnect и по сообщениям сервера. Незадача в том, что _данные_ не ходят туда-сюда.

wvxvw 30.06.2008 23:41

Хм... есть такой еще вариант... по идее все ХМЛи должны быть в кодировке utf-8, если этого нет, то сокет может отказаться их читать... или возможно, он ждет BOM сигнатуру перед началом сообщения, а если вы ее не посылаете, то сообщение "не замечает". Т.е. попробуйте явно отправить сигнатуру и удостоверится, что следующие за ней байты будут прочитаны в нужной кодировке так, что сформируют валидный ХМЛ.

У меня еще, например, была такая проблема, но, правда, с Си-шным сокетом. он отказывался принимать за 1 раз сообщение больше 4Кб... причин так и не удалось установить =) т.е. он так до сих пор и работает по 4Кб за раз =)
Так что причина может быть еще и в длине сообщения.

Ruffus 01.07.2008 14:51

Скажите, как может кодировка той или иной стороны (передающей или перенимающей) повлиять на пересылку байтиков и битиков?
Я пишу так:
Код:

_xmlSocket.send(new XML('<test>BYAGJOPR</test>'));
Даже если самому тексту не хватает сигнатур каких-то, неужели констуктор ХМЛ не может его обвернуть нужным образов?

crazyone 01.07.2008 15:58

Лично мне кажется, что проблема именно в сервере. Протокол не такой, или еще что-то.
По поводу utf-8 — у вас нелатинских символов все-равно нет. По поводу безопасности — если подключение есть, то и сообщения будут ходить.

wvxvw 01.07.2008 18:30

>> Скажите, как может кодировка той или иной стороны (передающей или перенимающей) повлиять на пересылку байтиков и битиков?
Я пишу так:

Ну как, это же не бинарный сокет, он ждет от вас определенного формата данных, а не любой, какой прийдется =)
или может он 00 или 0A / 0D посылает перед сообщением нинаю...

Alex_beginner 01.07.2008 18:35

Ruffus! Прислушайтесь к рекомендациям wvxvw! В них есть резон.

Ruffus 01.07.2008 19:04

Я уже не знаю, что думать. В голову лезут мысли о том, что значение имеет факт того, что xmlSocket находится не в кадре, а в экземпляре, создаваемом в этом кадре. Нипанятна...

wvxvw 01.07.2008 19:09

Не... если трейс конекта был, то значит сокет создан, все норм. Просто, что я думаю... (честно, я не делал сокет на АS2, но на АS3 ХМЛ сокет стал бы ругаться, если бы пришли какие-нибудь "неожиданные" данные. Т.е. я думаю, что все-таки нужно прислать сначала BOM, потом точно в кодировке utf-8 данные, потом, на всякий случай 00 (фз, может 0А тоже покатит =).

А, вот еще подумал, а на какой порт конект? А то флеш не любит порты ниже 1024.


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

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