Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   WebSocket + NodeJs + SocketIO . Ошибка безопасности (http://www.flasher.ru/forum/showthread.php?t=198653)

Azo 02.05.2013 18:26

Simplifier, Да, там написано что порт по умолчанию 10843,
но Клиент AS3 об этом же не знает. в Сервере ничего специально не настраивал. Все по умолчанию стоит.
Факт в том что с моего компа запускается нормально, а на сайтах нет

Simplifier 02.05.2013 19:37

Цитата:

Да, там написано что порт по умолчанию 10843,
но Клиент AS3 об этом же не знает
Ну так поменяй его на стандартный для флеша 843. Ну или во флеше запрашивай кроссдомен с этого 10843. Или в чем затык-то?

Azo 02.05.2013 19:41

Что только я не пробовал... ((
Сейчас еще раз попробую все настройки вернуть на default и как ты посоветовал запрашиваnm кроссдомен с этого 10843

Добавлено через 22 минуты
Не вышло....
Никто не знает, как сделать чтобы по адресу http://88.198.13.155:3000/crossdomain.xml ?

Simplifier 02.05.2013 20:37

А, ну да, по диагонали прочитал и фигню сморозил =)

Добавлено через 6 минут
Цитата:

Код AS3:

Security.loadPolicyFile("http://88.198.13.155:843");
Security.loadPolicyFile("xmlsocket://88.198.13.155:843");
 
client = new Client();
client.init('88.198.13.155', 3000,null, function():void{
        client.addEventListener(ClientEvent.IO_ERROR,onError);
        client.addEventListener(ClientEvent.SECURITY_ERROR,onError);
        client.addEventListener(ClientEvent.MESSAGE,onMessage);
                dispatchEvent(new Event(Event.CONNECT));
 
                trace("Успех!");// -< Вот этого не происходит!! Так как не считывает crossdomain
 
 
});


Первые 2 строчки бесполезны. Класс Client сам же пытается кроссдомен запросить:
Код AS3:

this.policyUrl = policyUrl || ("xmlsocket://" + host + ":843");


Azo 02.05.2013 20:45

Да, видел тоже в клиенте этот код... однако не работает

Simplifier 02.05.2013 20:54

Может все ж какой-то косяк кроссдоменом, который формируешь? Там же есть ссылка на код для него: https://github.com/stokegames/pomelo.../lib/server.js . Хотя, раз с XMLSocket работало, то хз

Azo 02.05.2013 20:56

ВОт кстати код кросдоменника

Код AS1/AS2:

var server = require('net').createServer(
function(stream){
        //console.log('connected'); // <-- log —---------
        stream.on('error', function (extension) {
                console.log('policy.socket.error');
        });
        stream.on('data',function(){
 
 
stream.write('<?xml version="1.0"?>\n');
stream.write('<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">\n');
stream.write('<!-- Policy file for xmlsocket://88.198.13.155 -->\n');
stream.write('<cross-domain-policy>\n');
stream.write('<!-- This is a master socket policy file -->\n');
stream.write('<site-control permitted-cross-domain-policies="all"/>\n');
stream.write('<!-- No other socket policies on the host will be permitted -->\n');
stream.write('<site-control permitted-cross-domain-policies="master-only"/>\n');
stream.write('<!-- Instead of setting to-ports="*", administrators can use ranges and commas -->\n');
stream.write('<!-- This will allow access to ports 123, 456, 457 and 458 -->\n');
stream.write('<allow-access-from domain="*" to-ports="*" secure="false" />\n');
stream.write('</cross-domain-policy>\0');
 
/*
                stream.write('<?xml version="1.0"?>');
                stream.write('<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">');
                stream.write('<cross-domain-policy>');
                stream.write('<allow-access-from domain="*" to-ports="*" />');
                stream.write('<site-control permitted-cross-domain-policies="master-only" />');
                stream.write('</cross-domain-policy>');
*/

                stream.end();
        });
});
server.listen(843, '88.198.13.155');

Добавлено через 59 секунд
Сейчас попробую тот

Добавлено через 27 минут
те же яйца, только в профиль ((

mikhailk 02.05.2013 22:21

Цитата:

ВОт кстати код кросдоменника
Это файл политик все-таки.


У меня работает все по дефолту, без всяких плясок с бубнами. Есть виртуальный сервер по адресу 100.100.100.100 (условно):

1. На 843 порту запущен сервер, который отдает файл политик (пока вообще безо всяких ограничений):

Код:

var net = require('net');
var port = 843;
console.log("SecurityPolicy server started on port " + port);
       
var server = net.createServer(function(stream) {
        stream.setEncoding('utf8');
        stream.addListener('data', function(mess) {
                var policy = '<?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="*" /> </cross-domain-policy>\0';       
                stream.write(policy);
                console.log('SecurityPolicy sended to user, ip: '+stream.remoteAddress);
        });
});

server.listen(port);

2. В корне сервера (каталог www) лежит кроссдоменник (тоже пока безо всяких настроек):

Код:

<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>


3. Непосредственно сокет-сервер (node.js) висит на порту 8080.


4. В каталоге на сервере лежит html-файл с флешкой, в которой подключение к сокет-серверу реализовано так:

Код AS3:

socket = new FlashSocket("100.100.100.100:8080");
socket.addEventListener(FlashSocketEvent.CONNECT, onConnect);

Все заработало сразу после сборки.

Azo 02.05.2013 22:28

mikhailk, Спасибо кончено, а попробуйте теперь переложить клиент на другой сервер?

Можете прислать ваш пример?

mikhailk 02.05.2013 23:49

Все правильно, та же ситуация - ломится за кроссдоменником на тот же порт, что и у сокет-сервера.

Кстати, вот тут смотрели?
Сам не проверял, но у человека вроде все заработало:
http://www.flasher.ru/forum/showthread.php?t=194536

На третьей странице вверху.


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

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