Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Передача crossdomain.xml по http во флеш-клиент от java-сервера (http://www.flasher.ru/forum/showthread.php?t=200064)

okouser 29.05.2013 16:32

Передача crossdomain.xml по http во флеш-клиент от java-сервера
 
empty

maxkar 29.05.2013 16:43

Какой Content-type в заголовках ответа? flash понимает несколько различных (в том числе банальный text/xml, наверное, еще application/xml должен понимать.). Я не помню, что там сервер дает по умолчанию (и отдает ли вообще), а проверять лень (нужно обвязку кода писать). Посмотрите браузером со сниффером, что ли...

maxkar 29.05.2013 18:25

В браузере он выдается без заголовка, так как браузер его уже распарсил (xml). Вам какой-нибудь сниффер нужен (вроде httpfox), чтобы смотреть не на содержимое, а на заголовки обмена. И там уже сравнивать, в чем разница между вашей программой и ответом от веб-сервера. Сам кросс-доменник вроде бы верный (с точностью до русская/английская с/c и подобных приколов), так что, вероятно, все же заголовки не совсем те. Соответственно, сначала выдать те же заголовки, что дает сервер, а потом по-одному удалять ненужные.

C4Grey 29.05.2013 18:25

Возможно, стоит загружать xml не по http:
Код AS3:

Security.loadPolicyFile('xmlsocket://' + Host + ':' + PolicyPort);


Rzer 29.05.2013 20:22

А что у вас возвращает функция getCrossdomainBytes()? В UTF-8 ли кодировке?

C4Grey 30.05.2013 04:05

Цитата:

Сообщение от okouser (Сообщение 1135512)
Я так понимаю, для этого нужно писать свой сервер ддя работы по протоколу xmlsocket?

Нет, обычный ServerSocket. Вот код сервера: http://pastebin.com/unJjYnwU . Код не мой, в свое время я его с какого-то туториала содрал. С использованием http протокола при загрузке xml у меня были какие-то проблемы, нашел на Stack Overflow решение...Сейчас использую модифицированную версию, основанную на Jetserver(который, в свою очередь, использует Netty).

C4Grey 30.05.2013 05:48

Цитата:

Even though the method is named Security.loadPolicyFile(), a policy file isn’t loaded until a network call that requires a policy file is issued. Calls to loadPolicyFile() simply tell Flash Player where to look for policy files when they are needed.

You can’t receive notification of when a policy file request is initiated or completed, and there is no reason to do so. Flash Player performs policy checks asynchronously, and automatically waits to initiate connections until after the policy file checks have succeeded.
Отсюда: help.adobe.com

SocketConnection: http://pastebin.com/rAFMaXdT
MainServer.PolicyXML() - строка, полученая при помощи метода buildPolicy класса PolicyServer.
Там ничего особо ценного, хотя, возможно, поможет добавление null в конце сообщения: _socketOut.println(msg + "\u0000");

djyamato 30.05.2013 11:38

Есть готовое решение, гляньте http://www.smartsocket.net/
Обратите внимание на config.json, который java сервер создает при первом запуске.
Собственно, тут и писать ничего не надо, AS сторона там же в исходниках уже есть


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

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