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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

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

Регистрация: Sep 2012
Сообщений: 1
Question Security error 2048

Здравствуйте. Пишу на AS 3 подключение к серверу.

Код подключения

Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.*;
	import flash.media.Sound;
	import flash.net.*;
	import flash.system.Security;
	import flash.external.ExternalInterface;
 
	public class MessengerGateInterface extends Sprite
	{
		private var bsocket:Socket;
		private var host:String;
		private var port:Number;
 
		public function MessengerGateInterface():void 
		{	
			Security.allowDomain("our.domain.com");
			Security.allowInsecureDomain("our.domain.com");
			Security.loadPolicyFile("http://our.domain.com/crossdomain.xml");
 
			this.bsocket = new Socket();
 
			this.bsocket.addEventListener(Event.CONNECT, this.onConnect);
			this.bsocket.addEventListener(Event.CLOSE, this.onClose);
 
			this.bsocket.addEventListener(ProgressEvent.SOCKET_DATA, this.dataHandler);
			this.bsocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityError);  
			this.bsocket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
 
			this.setSettings("our.domain.com", 4434);
			this.connect();
 
			ExternalInterface.call("initGate");
		}
 
		public function securityError(event:SecurityErrorEvent):void
		{
			ExternalInterface.call("onSecurityError", event.toString()+" " + Security.REMOTE.toString());
			trace("Security error");
		}
 
		public function setSettings(host:String,port:Number): void
		{
			this.host = host;
			this.port = port;
		}
 
		public function connect(): void
		{
			this.bsocket.connect(this.host, this.port);
		}
 
		public function onConnect(event:Event): void
		{
			if (this.bsocket.connected) {
				ExternalInterface.call("successConnection");
				trace("success connection");
			}
		}
 
		public function onClose(event:Event): void
		{
			this.bsocket.close();
			ExternalInterface.call("onCloseConnection");
		}
 
		public function dataHandler(e:ProgressEvent): void {  
			if (bsocket.bytesAvailable>0) {
				ExternalInterface.call("receiveFromServer",bsocket.readUTFBytes(bsocket.bytesAvailable));
				trace("receive data");
			}
		}
 
		public function ioErrorHandler(event:IOErrorEvent):void
		{
			ExternalInterface.call("errorConnection");
			trace("error connection");
		}
 
		private function init(e:Event = null):void
		{
			new MessengerGateInterface();
		}
	}
}
Код crossdomain.xml
Сам файл лежит в корне сайта our.domain.com
Код:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="our.domain.com" to-ports="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Фрагмент сервера
QString data = QString(clientConnection->readAll());

Код:
  if(data == "<policy-file-request/>"){
       QString answer = QString("<?xml version=\"1.0\" encoding=\"UTF-8\" ?><!DOCTYPE cross-domain-policy SYSTEM \"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\"><cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"><allow-access-from domain=\"our.domain.com\" to-ports=\"*\"/><allow-http-request-headers-from domain=\"*\" headers=\"*\"/></cross-domain-policy>");
        clientConnection->write(answer.toStdString().c_str());
        echo("Send Policy Data");
        return;
   }
Генерируется ошибка:
Цитата:
Security Error #2048
В чем может быть проблема? Как решить?

Старый 04.09.2012, 17:58
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Мы анекдоты и ошибки по номерам не запоминаем, хорошо бы привести текст.
__________________
Поймай яблоко 2!

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
В том, что сокетам пофиг ваш кроссдоменник. Сокет сервер должен отдавать файл через порт
Код AS3:
Security.loadPolicyFile("xmlsocket://server.com:2525");
http://help.adobe.com/ru_RU/ActionSc...0204-7c60.html

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

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

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


 


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


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