Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не могу пробиться на сокет на сервере из контакта (http://www.flasher.ru/forum/showthread.php?t=145344)

SunShadow 05.10.2010 14:08

Не могу пробиться на сокет на сервере из контакта
 
Здравствуйте коллеги. Первый раз взялся работать с контактом и с сокетом тоже. Скидал небольшой тестовый классик для доступа к серверу, когда запускаю локально, соответственно безопасность не функционирует я отправляю запрос на сервер, подключаюсь и вроде как все работает. Но стоит мне запустить из приложения получаю ошибку что не могу подключиться из за безопасности.
Вот файл безопасности размещен на сервере куда пытаюсь подключиться к сокету по адресу http://ladya.gorod45.ru:843/crossdomain.xml

Подключиться к сокету пытаюсь вот так:
Код AS3:

                private var socket:XMLSocket;
                private const HOST:String = "ladya.gorod45.ru";
                private const PORT:int = 8080;
 
                public function TestChat()
                {
                        addEventListener(Event.ADDED_TO_STAGE, hnAdded2Stage);
                        addEventListener(Event.REMOVED_FROM_STAGE, hnRemovedFromStage);
                        Security.loadPolicyFile("http://ladya.gorod45.ru:843/crossdomain.xml");// "xmlsocket://ladya.gorod45.ru:843/crossdomain.xml");
                        Security.allowDomain('*');
                }
 
                private function hnRemovedFromStage(e:Event):void
                {
                        removeEventListener(Event.REMOVED_FROM_STAGE, hnRemovedFromStage);
                        socket.close();
                }
 
                private function hnAdded2Stage(e:Event):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, hnAdded2Stage);
                        socket = new XMLSocket();
                        socket.addEventListener(Event.CONNECT, hnConnect);
                        socket.addEventListener(DataEvent.DATA, hnData);
                        socket.addEventListener(Event.CLOSE, hnClose);
                        socket.addEventListener(IOErrorEvent.IO_ERROR, hnIOError);
                        socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, hnSecurity);
                        socket.connect(HOST, PORT);
                }

В итоге получаю ошибку при соединении. Подскажите что делаю не так, буду крайне признателен.
С уважением Тень Солнца):umnik2:

mikhailk 05.10.2010 14:25

Код:

loadPolicyFile("xmlsocket://" + socketHost + ":" + socketPolicyPort);
файл политик должен отдавать сокет-сервер

SunShadow 05.10.2010 14:45

Он есть вверху закомментированный, я так пытался, все равно ошибка падает

mikhailk 05.10.2010 15:01

сокет-сервер файл политик отдает?
речь идет о процессе "сокет-сервер", который висит на определенном порту и к которому коннектится сокет-клиент

и, кстати, то, что закомментировано - это не то, что написал я
сравните

SunShadow 05.10.2010 15:12

Как мне проверить что он его отдает?
Код AS3:

public function TestChat() 
                {
                        addEventListener(Event.ADDED_TO_STAGE, hnAdded2Stage);
                        addEventListener(Event.REMOVED_FROM_STAGE, hnRemovedFromStage);
                        Security.loadPolicyFile("xmlsocket://ladya.gorod45.ru:843");
                        Security.allowDomain('*');
                }

Сделал так, эффект тот же. Файл crossdomain.xml забирается через 843 порт, в самом файле вообще все порты должны быть открыты вроде. Подключение клиент-сокет идет к порту 8080.

mikhailk 05.10.2010 15:21

так, а сокет-сервер 843-й порт слушает?

SunShadow 05.10.2010 15:27

Да, программист который его писал и настраивал говорит что слушает. Так что я надеюсь что слушает

GBee 05.10.2010 15:39

Когда флэшка коннектится к сокету, она кидает запрос на получение кроссдомена (<policy-file-request/>), cервер должен в ответ кинуть кроссдомен.

SunShadow 05.10.2010 15:45

из-за недостатка знаний толком не понимаю что у меня не правильно. ткните носом слепого котенка, где рыть то?)

mikhailk 05.10.2010 15:54

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


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

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