![]() |
Socket
Люди, расскажите мне, я явно чего-то не понимаю.
Пишу многопользовательскую игру. И есть у меня сервер на джаве. Включен и ждёт себе мирно подключений. На флеше заходит клиент, общается с ним по сокету и радуется. Так вот когда я запускаю приложение в среде CS4, то всё классно работает и коннектится. Потом, во-первых, если я запущу флешку не со среды, а просто с диска или в браузере, то выдаётся красивое сообщение: SecurityError: Error #2010: Не допускается использование сокетов SWF-файлам в local-with-filesystem. Один товарищ посоветовал почему-то написать во флешке Security.loadPolicyFile("http://localhost/crossdomain.xml"); (Апач стоит, crossdomain.xml (что за он о_о) лежит где надо..) Так вот после этого при запуске флешки с диска вылазит окошко, где написано, что Adobe Flash Player остановил потенциально небезопасную операцию с поддержкой интернета: localhost. В общем надо нажать параметры, чтобы разрешить. После этого в браузере врубается замечательная страничка http://www.macromedia.com/support/do...anager04a.html где, если выбрать этот swf-файл, то дальше всё работает хорошо. Я в шоке, каким боком эта страничка к моему компу и почему она что-то разрешает тут делать О_о. И во-вторых, ни у кого, кроме меня, такого сообщения ни возникает, однако игра не запускается. Просто ничего не происходит. Эти все события взаимосвязаны? Кто-нибудь понимает, что происходит? Огромнейшее спасибо, если проясните мне, что к чему.. |
это называется политика безопасности
|
Научите ваш сервер отдавать кроссдоменник по сокету, по своему порту, а лучше по 843.
|
Ну.. Хорошо, спасибо, постараюсь с этим разобраться :)
Добавлено через 27 часов 48 минут Так.. Я уже начал что-то понимать. Скажите, а можно как-то узнать, загрузился ли crossdomain.xml успешно? Просто я его загружаю уже сотней способов, но всегда один результат: при обращении к сокету вылазит: text=Error #2048: Нарушение изолированной среды: http://domain/my.swf не может загрузить данные из ip:port. ip:port - это java-сервер у меня на компе. Цитата:
Добавлено через 47 часов 13 минут Люди добрые!! Ну скажите хоть что-нибудь! Вы не знаете никто этого тоже? Я уже часов 10 сижу над этим..... Оно не работает ну никак :( |
Цитата:
P.S. после того как я последовал этому совету , у меня всё заработало. |
Такая же проблема...
Добрый день, я уже в общей сложности больше суток мучаюсь с этой проблемой, никак не могу понять в чем дело, причем когда первый раз делал с книжки все работало ОК, ко мне могли по флешке коннектиться люди, а сейчас вообще никак не работает, я перерыл все весь поисковик и тут искал так и ничо не помогло.
Вот флеш код: Код:
package LibКод:
#!/usr/local/bin/phpЦитата:
Цитата:
Цитата:
Цитата:
Local Playback security стоит - Access network only А если ставлю Access local files only то когда запускаю из флеша - все также, а когда запускаю отдельно, то флешка показывает этот текст: Цитата:
Если будете помогать и отвечать, скажите что в "Local Playback security" должно стоять, если РНР сервер и сама флешка будет лежать на одном и том же сервере. Так вот, в чем моя проблема? Объясните пожалуйста :) Я больше не могу с этим жить! :) очень благодарю тех кто решит помочь :) |
(отредактировать предыдущее сообщение нельзя т.к. не влезает более 10 000 символов) остаток того что хотел сказать:
У меня судя по всему не отдается из РНР сервера файл политики, может я как то не правильно это делаю? (см в коде), может надо заголовки какие нибудь еще прибавлять? оО, а то получается что я только "содержимое файла" передаю.... что только не пробовал. |
Цитата:
|
ну это очень старые сообщения, мое - новое :)
|
Цитата:
|
дам 100 яндекс денег, тому кто мне грамотно поможет, icq 230277 буду через 30 минут :)
|
Там по-моему горы фигни ещё выгребать, но чтоб начать:
PHP код:
Код AS3:
Вообще при запросе полиси клиент потом сразу отключается (и только потом коннектится ваш сокет) и можно самому закрыть связь с полицией, чтоб не ждать. Во флэшке до socket.connect типа Код AS3:
|
Цитата:
- 4 сокет-сервера, висящие на 4-х портах (2 приложения, у каждого тест и продакшн) - 1 сокет-сервер политик на своем порту, который только отдает файл политики тому клиенту, который к нему обратился, и больше ничего не делает. |
тоже проблема с кроссдоменником
У меня тоже проблема с безопасностью сокетов.
Когда запускаю AS в CS5 он коннектится к серверу. Сервер получает запрос <policy-file-request/> по порту 8080, в ответ отправляет такой текст: Код:
<?xml version="1.0" encoding="UTF-8"?>Код:
Error: Request for resource at xmlsocket://78.24.218.72:8080 by requestor from file:///ляляля.swf is denied due to lack of policy file permissions. |
Потверждаю. Очень часто работаю с портами численный идентификатор которых выше 10 тысяч. Отдают.
|
Решение нашли? У меня та же проблема, не уверен получает ли флешка crossdomain.xml
|
Цитата:
|
Да, так работает из самой IDE и при запуске файла swf, но вот из браузера не хочет...
|
Попробуй запустить в дебаггере.
(ctrl+shift+enter) Должна работать как в браузере, а трейсы и ошибки выполнения увидишь. |
Цитата:
Теперь вижу проблему: Код AS3:
Например, пробовал пример из сообщения выше: PHP код:
PHP код:
|
| Часовой пояс GMT +4, время: 10:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.