![]() |
Нужна помощь в настройке Apache + PHP сокет + AS
Не могу понять как настроить апач, чтобы при попытке коннекта на 843 порт отдавался crossdomain.hml =(
В httpd.conf добавил Listen 843 в корневой директории лежит такой вот пхп: Код:
<?phpКод:
package connection established: [Event type="connect" bubbles=false cancelable=false eventPhase=2] // sc.writeUTF("Hi!"); ничего не посылает либо ПХП ничего не возвращает =/ Самое удивительное то, что ПХП в любом случае лог не пишет (но если просто обратиться к нему из браузера, то лог будет создан) Через браузер - секьюрити еррор... |
Через xmlsocket:// указывается только хост, а не имя файла.
|
Хм... ок, оказалось, что как раз httpd.conf трогать не надо было...
имя файла убрал, вообще убрал Security.loadPolicyFile() она все равно вызывается. Все равно, пока что результатов никаких =( Сделал ненмого по-другому: флеш сначала посылает запрос сюда http://127.0.0.1/sock_crossdomain.php (этот файл должен запустить сокет), а дальше пытается законектится на все тот же 843 порт... естесственно, ошибка безопасности... Да, и еще, если я просто пытаюсь из строки браузера запустить пхп - получаю следующую ошибку: Цитата:
|
А, можно поподробнее, что должно получится, когда ето все будет работать?
Сокеты служат для передачи данных по сети. С их помощью можно общаться с портами удаленного сервера. Работа с сокетами подобна работе с файлами в РНР. А это что за фича Код:
$log = fopen("socket_log.txt", "w");fsocketopen(); например Код:
$sp=fsockopen("dnadillo.dn.ua",80);Например dnadillo.dn.ua/my_swf.swf И она будет подгружать в себя все что угодно из того что расположено на сайте dnadillo.dn.ua |
Вложений: 1
Это не фишка... просто в файл пишется лог о том, что смог/не смог сделать скрипт...
И этот скрипт никогда не будет доступен по сети, только локально, это его предназначение... т.е. флешка используется для того, чтобы рендерить картинки и посылать их "по почте" на сохранение. Т.е. в итоге, что мне нужно сделать: шаг 1: запустить из флешки скрипт, который в свою очередь запустит сокет. шаг 2: дожаться сообщения, что сокет запущен и подключится к нему. шаг 3: послать картинку -> дождаться сообщения, что картинка сохранилась, и так очень много раз =) шаг последний: сообщить сокету, что нужно закрыться. Т.е. все то же самое я могу сделать ХТТП запросами... но это маразм, т.как на каждую картинку прийдеться отправлять по 2 запроса (1 с параметрами название файла, номер сессии и т.п.) второй уже с самой картинкой. Кроме того, в идеале будет реализован мультитрединг... а это значит, что запросы могут легко перепутаться и тогда понеслась... Либо, немного улученный вариант - в байтарей с картинкой дописывать все те же название, сессию и т.п. но все равно, куча лишнего мусора будет пересылаться... Сокет был бы оптимальным решением т.как большинство параметров идентичны, и на самом деле мне нужно их послать 1 раз в начале, и посигналить, когда все картинки одного типа были высланы... ЗЫ. Конечная реализация все равно будет на АСПХ, но мне пока для тестов надо ПХП =( не то, чтобы я его хорошо знал, но АСПХ - вообще темный лес, да и я повешусь у себя дома еще и ИИС поставить со всем .НЕТовским фреймворком... Единственное, что точно работает - при попытке обратиться к http://127.0.0.1:843 приходит вот это Код:
<?xml version="1.0" ?> В итоге доработался до такого... вопрос, как у меня могло это получиться, если сокет всего 1? =\ Цитата:
и при этом если пойти по ссылке http://127.0.0.1:1234 в браузер выдается именно такой crossdomain.хml, как указано в доках... =( |
Должен быть запущен сокет-сервер, а не http-сервер на 843-ем порту.
|
Кстати, насколько я знаю, тот же апач при определенной сборке может быть сокет-сервером.
Самому проблема стала интересна :) Если получится настроить нормально работающий клиент-сервер с апачем на сокетах, то хотелось бы, чтобы решение показали (если оно, конечно коммерческим секретом не является :) ) |
Цитата:
Сайлас: не, то что я делаю - исключительно для себя, для тестов, так что если получится - конечно покажу =) ЗЫ. Самое обидное, что на каком-то этапе в трейсе появилось сообщение о том, что сокет приконектился... но как я это сделал... Но, похоже, что все-таки можно научить апач принимать нестандартные сообщения по TCP... нужно добавить handler"ы, которые бы объясняли, что нужно делать, если пришел нестандартный http заголовок... но это все теория... на практике это значит, что мне нужно будет сейчас переинстолить ПХП как SGI скрипт, да и все равно не факт, что это будет работать... вобщем, похоже прийдеться кого-то из знакомых просить, чтобы на C/Javе сервер написали... |
апач и есть сокет сервер :) слушает он 80й портю вообще ХТТП этот тоже сокет, просто он закрывается сразу после запроса. и запрос имеет специфичный вид.
Олег, секурнасть по сокету нужна только в том случаи, если ты используешь сокетное соединение. если ты собираешься просить людей, что бы они написали тебе простейшее серверное приложение, то кто тебе пишет сервер, для которго понадобился данный вид получение секуритифайла? |
Цитата:
|
__etc, серьёзно? тогда они не флэшеры, и скорее всего никогда не станут ими.
|
Цитата:
|
__etc, и чего же я не понял ? :) того что большенство людей называют вещи не своими именами? и поэтому мне нужно под них подстраиваться?
|
Цитата:
|
Млин, ну чего вы к названиям цепляетесь?
Я не знаю, возможно, скажу что то банальное, но, это ессно понятно, что HTTP это надстройка над TCP, и что 80 порт, который традиционно исползуется для пересылки таких же традиционных сообщений, типа GET, POST и т.п - то же своего рода сокет, но, по очевидным причинам, меня его функциональность не устраивает - мне как раз таки не надо посылать традиционные HTTP заголовки, и не нужно, чтобы он закрывался сразу после получения сообщения. Т.е. скажем так, что задача, возможно решаема, но мне не хватает знаний о структуре сервера, чтобы настроить его так, чтобы получив нетрадиционный запрос (по TCP) - <policy-file-request/>, сервер не выдал бы ошибку, а перенаправил бы запрос на выполнение скрипту, который должен обслуживать это соединение. (что вобщем-то он и делает, если получает по тому же TCP сообщение типа GET <filename>?parameres - это и есть реализация HTTP). Возможно, если бы я нашел мануал, который объясняет, как научить апач реагировать на нетрадиционные TCP сообщения - у меня бы и получилось, но факт, искал долго и упорно, ничего внятного не нашел, поэтому, наверное, от затеи прийдеться отказаться =( |
Цитата:
Ну или, к примеру, до какой-нибудь реализации динамического выделения памяти во флэше под массивы - все же флэшеры должны знать? Для задающего вопрос не важно, что, суть представляет из себя стандартный апач http-сервер, важно то, что для общения по http есть один инструментарий, а для сокетов - другой. Важно, что http рвет запрос сразу же, а сокет держит и т.п. |
__etc, если вдруг все начнут считать землю раем, она от этого в него превратится?
Сайлас, если от этого будет зависит работа друго отдела, то да. а пока "клиент" не может жить без "сервера", клиентщикам придётся разбираться в том что им навязывают серверники. вот обратная совместимость совсем не обязательна. Цитата:
|
Цитата:
Если задача многогранная и связана не с флэшом, а с работой самих протоколов и интерфейсов, тогда да. А для абстрактного флэшера, разработчика высокого уровня (очень высокого), не важно. Есть работа по сокетам, а есть по хттп и в данном случае - это одного поля ягода. Можно привести много примеров из жизни, когда 2 слова в одном случае абсолютно несравнимы, а в другом наоборот. P.S. При этом это не в коем случае не плохо, что вы знаете, что хттп-протокол, а сокет-интерфейс, только не обязательно везде это использовать :) Мы же тут не пытаемся использовать знание местонахождения точки G ;) |
О!? а что по вашему "разработчик высокого уровня"? разработчик, который расставляет картинки во флэше? или вы считаете, что рас челове пишет онлайн приложение, ему совсем необязательно знать как работает интернет? или вы считает что такому человеку не нужно указывать на его ошибки? тогда он никогда не вырастет, и зачем он припёрся на форум искать помощь, если она его ничему не научит? чем глубже человек спускается по ступенькам в бассейн программирования, тем выше у него ЗП.
|
Ладно, вы видимо не хотите понять о чем речь, думаю, что нужно закончить спор, т.к. абсолютно не по теме и не приведет ни к чему
Я же не зря P.S. написал: Цитата:
Цитата:
Так что, я повторюсь, закончим спор :) |
http://flasher.ru/forum/showthread.php?t=103931
Здесь человек пытался сделать что-то похожее. Правда, по-началу в обсуждении было некоторое недопонимание в том плане что речь идет об AS3. Но тут как раз к месту. Как я помню, народ пришел к мысли, что заставить апач работать с AS3-сокетом можно и на 80-ом порту, привешивая соответствующий заголовок в запрос. Т.е. если я все правильно понял, запрос как раз-таки должен быть ТРАДИЦИОННЫМ. Но в общем и целом все это зыбко как-то, хотя принципиально возможно. Зато перспектива есть, потому не надо отказываться. Вопрос интересный. Настраивать апач на нетрадиционные заголовки однозначно - утопия. Заюзать самописный сокет-сервер гораздо проще. Хотя.. хостеры.. прокси..межсетевые экраны.. ... Да, еще. Я почему-то обратил внимание на трэйс-рисунок от FD видимо.. Собственно, мне стало интересно откуда там вылезли .NET классы? Я знаю, что FD написан на .NET, но при чем тут флэш-сокеты? |
Цитата:
|
alexcon314:
badun: аха, так и есть =) ток в данном случае, как выяснилось, ошибка не из ФД, а трэйс-плугина к нему... |
А в стандалоне как все-таки?
|
сейчас уже тяжело проверить... я точно не помню при каких обстоятельствах возникла ошибка... вполне возможно, что просто не дождался полного рестарта сервера и попробовал запустить его еще раз... или (было открыто несколько окон с той же флешкой, из флеш ИДЕ, експлорера и ФД) ФД закрылся с ошибкой (впервые %), а окно с сообщением висело на фоне под каким-то другим окном, и я просто не заметил... вариантов много...
ЗЫ. сам плугин дико глючный, и, возможно ошибка возникла гораздо раньше, просто пока он сообразил, что с ней что-то нужно делать, ситуация изменилась =) |
| Часовой пояс GMT +4, время: 18:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.