Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.05.2013, 20:58
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 1  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
По умолчанию WebSocket + NodeJs + SocketIO . Ошибка безопасности

Может кто то знать про такую проблему... Не удается подключится к сокету на своем сервере...
Спасибо всем откликнувшимся!


Сначала покажу ошибку
Код:
Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: https://pp.vk.me/c307509/u152812740/2e0c7dbd32f6c0.zip cannot load data from http://88.198.13.155:3003/socket.io/1/?time=1367423137699.
	at com.pnwrain.flashsocket::FlashSocket()
	at com.netease.pomelo::Client/init()
	at ru.mamoyan.azo.server::Socket()
	at ru.mamoyan.azo::AZO$/connect()
	at Main/init()
	at net.flashpunk::Engine/onStage()
	at flash.display::DisplayObjectContainer/addChild()
	at Preloader/startup()
	at Preloader/checkFrame()

На клиентской стороне библиотека https://github.com/stokegames/pomelo...melo/Client.as основанная на WebSocket SocketIO

На сервере у себя поставил nodejs и запустил скрипты с слушателями:
на порту 3000 - основной серверный код
на порту 843 - код который возвращает crossdomain


Скрипт Crossdomain
Код AS3:
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"?>');
		stream.write('<cross-domain-policy>');
		stream.write('<allow-access-from domain="*" to-ports="*" />');
		stream.write('<allow-http-request-headers-from domain="*"/>'); 
		stream.write('<allow-access-from domain="*" to-ports="843"/>');
		stream.write('<allow-access-from domain="*" to-ports="3000"/>'); 
		stream.write('</cross-domain-policy>\0');
 
		stream.end();
	});
});
server.listen(843, '88.198.13.155');


Код клиента на AS3
Код 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
 
 
});
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH


Последний раз редактировалось Azo; 01.05.2013 в 21:48.
Старый 01.05.2013, 21:44
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Код AS3:
Security.loadPolicyFile("http://88.198.13.155:843");
Security.loadPolicyFile("xnlsocket://88.198.13.155:843");
Первое не нужно, второе с опечаткой.
Проверьте, что 843 порт пингуется (по-умолчанию большинство операционных систем не дают запуститься на этом порту).
__________________
...вселенская грусть

Старый 01.05.2013, 21:45
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 3  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
gloomyBrain, это я здесь просто опечатался... пингуется
http://88.198.13.155:843


Загрузив на сайт, там жму на F12 и вижу что пытается загрузить cross по адресу Request URL:http://88.198.13.155:3000/crossdomain.xml
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 02.05.2013, 01:01
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 4  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Запрос на 843 не увидите.

Кроссдоменника по этому адресу нет:
Однако, не совсем понятно, почему он ломится на этот адрес по порту 3000.
Как подключаете swf?

Старый 02.05.2013, 01:05
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 5  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
подключаю загружая в вконтакте..

Может в этом дела? кстати с локального компьютера (с папки) swf открывается и там все работает

вот, в частности https://vk.com/app3551775
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 02.05.2013, 09:13
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
На мой взляд, надо все-таки отловить ошибку и получить точное ее значение (добавьте в клиента консоль для вывода ошибок или еще как).

Можно попробовать и в файле политик и в кроссдоменнике (это - два разных файла, правильно?) везде снять ограничения по адресам и портам, может где-то что-то настроено криво.

Ну и все-таки, если подключаться как iframe, то этих проблем точно нет.

Старый 02.05.2013, 14:42
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 7  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
я думал что crossdomain это и есть файл политик...)
Я его просто выдаю демоном на сервере на порту 843 ...
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 02.05.2013, 14:55
kutuzov вне форума Посмотреть профиль Отправить личное сообщение для kutuzov Найти все сообщения от kutuzov
  № 8  
Ответить с цитированием
kutuzov
 
Аватар для kutuzov

Регистрация: Jul 2005
Сообщений: 135
как вариант: флешки теперь лежат на https, а сервер у вас http, чтоб работало нужно добавить secure="false"
http://www.adobe.com/devnet-docs/acr...cification.pdf
__________________
хоумпага

Старый 02.05.2013, 15:02
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 9  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
Нет, дело не в этом (
Я когда делал клиент с XMLSocket - все нормально работало... так как crossdomain грузился по xmlsocket://......

а сейчас этот SocketIO похоже работает совсем по другим линиям связи

вот куда он подключается
ws://88.198.13.155:3000/socket.io/1/flashsocket/le8-4VYn09eZGYzop_5D

Может как то оттуда надо отдавать crossdomain? вот как.. не знаю


import flash.net.Socket; - вот этот класс в конечном итоге подключается к серверу...
Когда подключался через XMLSocket - прокатывало... с тем же кросдоменником
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH


Последний раз редактировалось Azo; 02.05.2013 в 15:46. Причина: import flash.net.Socket;
Старый 02.05.2013, 17:19
Simplifier вне форума Посмотреть профиль Отправить личное сообщение для Simplifier Найти все сообщения от Simplifier
  № 10  
Ответить с цитированием
Simplifier

Регистрация: Jun 2011
Сообщений: 60
Цитата:
вот куда он подключается
ws://88.198.13.155:3000/socket.io/1/flashsocket/le8-4VYn09eZGYzop_5D
ну так ws - это, судя по всему, протокол вебсокета, а нужен флешсокет же наверно. На странице конфигурирования же описано как настраивать протокол, порт кроссдомена и тд. Все по инструкции делал?

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
NodeJs , SocketIO , webSocket , Ошибка безопасности
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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