Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Policy file request (http://www.flasher.ru/forum/showthread.php?t=135168)

stinkybob 17.01.2010 21:00

Policy file request
 
Доброго времени суток

У меня есть флеш клиент на АС2 и сокет сервер на С++

При исполнении из IDE (Flash) то все работает нормально, но когда выкладываю свф на вебсервер и запускаю из браузера то на сокет сервер прихолит сообщение

<policy-file-request/>

cordomain.xml

Код AS1/AS2:

<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="80,2803"/>
</cross-domain-policy>

flash

Код AS1/AS2:

Security.allowDomain("xxx.ru");
Security.loadPolicyFile("http://xxx.ru/crossdomain.xml");

Ничего это не помогает :( Подскжате пожалуйста что делать

etc 17.01.2010 23:50

Ну так с сокета вы ему кроссдоменник отдаете или нет?

stinkybob 18.01.2010 00:16

Нет =) я не понимаю как его с с++ отдать =)


Пытался сделать так :

Код:

char xml[500]="<?xml version='1.0'?> <!DOCTYPE cross-domain-policy SYSTEM 'http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd'> <cross-domain-policy> <allow-access-from domain='*' /> </cross-domain-policy>";

send(Client, xml, strlen(xml) + 1, 0);

ничего не выходит

Добавлено через 2 часа 35 минут
Все.. разобрался

клиент на флеше:

Код AS1/AS2:

Security.allowDomain("localhost");
Security.loadPolicyFile("xmlsocket://localhost:1000");
 
var socket:XMLSocket = new XMLSocket();
socket.onConnect = function(success:Boolean) {
        if (success) {
                o("Connection succeeded!");
                socket.send("Boss");
        } else {
                o("Connection failed!");
        }
};
if (!socket.connect("localhost", 1000)) {
 
ну и так далее....

код на с++

сразу после соединения

Код:

    char xml[500]="<?xml version='1.0'?> <!DOCTYPE cross-domain-policy SYSTEM 'http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd'> <cross-domain-policy> <allow-access-from domain='*' to-ports='1000' /> </cross-domain-policy>";

send(Client, xml, strlen(xml) + 1, 0);


etc 18.01.2010 08:18

Да, только после выдачи не забудьте закрыть этот коннект. Хотя флеш это и без вас сделает.
И да, нуль-байт в конце строки обязательно.

stinkybob 18.01.2010 16:15

Нуль байт это что? :)

etc 18.01.2010 18:03

Цитата:

Сообщение от stinkybob (Сообщение 879978)
Нуль байт это что? :)

http://ru.wikipedia.org/wiki/Нуль-те...ованная_строка

Сашаc 19.02.2010 21:06

Цитата:

Сообщение от etc (Сообщение 879890)
Да, только после выдачи не забудьте закрыть этот коннект. Хотя флеш это и без вас сделает.
И да, нуль-байт в конце строки обязательно.

А почему надо закрыть?

И тогда следующий вопрос - как сделать так, что бы постоянно висело соединение между сервером и флэшкой? Что бы сервер мог сам по своей инициативе, что то отправлять?

etc 20.02.2010 16:43

Закрыть надо, потому что такой механизм взаимодейтствия. Затем соединение откроется вновь.
Если вы понимаете, о чем речь, то второго вопроса не было бы.

Frozzeg 06.03.2010 05:56

вообще бредовая политика безопасности

etc 06.03.2010 14:35

Цитата:

Сообщение от Frozzeg (Сообщение 891324)
вообще бредовая политика безопасности

Вполне нормальная. И безопасно.


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

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