Не получает строку ‹policy-file-request /› при открытии защищенного сокета из флеш-памяти

У меня есть приложение, которое пытается открыть безопасное сокетное соединение на веб-сервере. Я разместил небольшой код, который передает файл политики на порт 843, как того требует флеш-плеер для подключения к сокету. Но я не получаю указанную строку <policy-file-request/>, вместо нее я получаю первую строку, которая отправляется на порт 443 во время безопасного подключения к сокету.

Этот сервер политики флэш-сокетов занимает больше времени, чем фактический процесс разработки. Пожалуйста, пролей немного света.


person intoTHEwild    schedule 08.02.2012    source источник
comment
мне нужно послать ‹policy-file-request /› специально, или флэш-плеер сделает это сам по себе?   -  person intoTHEwild    schedule 08.02.2012
comment
Нет, вам не нужно отправлять его самостоятельно, Flash Player отправит его автоматически. Однако я заметил, что он не отправит строку, если я не запустил Flash из браузера. По крайней мере, он не отправит его из автономного проигрывателя отладки.   -  person Bakapii    schedule 08.02.2012
comment
Я запускаю его в самом браузере. пробовал все IE, chrome, firefox, но ничего не работало   -  person intoTHEwild    schedule 08.02.2012
comment
Просто открываете SWF-файл в браузере или через веб-сервер?   -  person Bakapii    schedule 08.02.2012


Ответы (2)


Перед вызовом connect для Socket-объекта я делаю этот вызов:

Security.loadPolicyFile("xmlsocket://" + ip + ":" + port);

Как я уже упоминал в своем комментарии, он, похоже, ничего не отвечает и даже не отправляет, если я запускаю SWF в FlashPlayer. Но я все равно могу подключиться через сокет. Однако это не тот случай, если я запускаю его на веб-сервере. Затем он правильно вызовет ответ от SocketServer, который обрабатывает PolicyRequests.

person Bakapii    schedule 08.02.2012
comment
Я разместил клиентское приложение flash на своем локальном хосте и пытаюсь подключиться к веб-серверу с кодом C #, который обслуживает файл политики на порту 843. Когда я запускаю клиентское приложение, открывающее безопасный сокет на том же веб-сервере, я получаю сообщение запрос на веб-сервере через порт 843, но он не содержит '‹policy-file-request /›', вместо этого я получаю первый пакет, который передается во время безопасного соединения сокета. - person intoTHEwild; 08.02.2012
comment
Я полагаю, это как-то связано с securesocket. потому что, если я попробую с обычным сокетом, я получаю '‹policy-file-request /›', тогда как с securesocket я не получаю. - person intoTHEwild; 08.02.2012

похоже, что для того, чтобы обслуживать файл политики для защищенного сокета, вам нужно открыть безопасный сокет на стороне сервера, обычный сокет tcp не поможет. Хотя я до сих пор не понимаю, почему мы должны обслуживать файл политики через SSL, это всего лишь способ проверить, разрешено ли соединение. в любом случае, если вы застряли, продолжайте и реализуйте безопасный сокет на стороне сервера.

person intoTHEwild    schedule 10.02.2012