|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
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 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 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. |
|
|||||
Цитата:
Проверьте, что 843 порт пингуется (по-умолчанию большинство операционных систем не дают запуститься на этом порту).
__________________
...вселенская грусть |
|
|||||
gloomyBrain, это я здесь просто опечатался... пингуется
http://88.198.13.155:843 Загрузив на сайт, там жму на F12 и вижу что пытается загрузить cross по адресу Request URL:http://88.198.13.155:3000/crossdomain.xml
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Запрос на 843 не увидите.
Кроссдоменника по этому адресу нет: Однако, не совсем понятно, почему он ломится на этот адрес по порту 3000. Как подключаете swf? |
|
|||||
подключаю загружая в вконтакте..
Может в этом дела? кстати с локального компьютера (с папки) swf открывается и там все работает вот, в частности https://vk.com/app3551775
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
На мой взляд, надо все-таки отловить ошибку и получить точное ее значение (добавьте в клиента консоль для вывода ошибок или еще как).
Можно попробовать и в файле политик и в кроссдоменнике (это - два разных файла, правильно?) везде снять ограничения по адресам и портам, может где-то что-то настроено криво. Ну и все-таки, если подключаться как iframe, то этих проблем точно нет. |
|
|||||
я думал что crossdomain это и есть файл политик...)
Я его просто выдаю демоном на сервере на порту 843 ...
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
Регистрация: Jul 2005
Сообщений: 135
|
как вариант: флешки теперь лежат на https, а сервер у вас http, чтоб работало нужно добавить secure="false"
http://www.adobe.com/devnet-docs/acr...cification.pdf
__________________
хоумпага |
|
|||||
Нет, дело не в этом (
Я когда делал клиент с 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; |
|
|||||
Регистрация: Jun 2011
Сообщений: 60
|
Цитата:
|
Часовой пояс GMT +4, время: 11:04. |
|
« Предыдущая тема | Следующая тема » |
Теги |
NodeJs , SocketIO , webSocket , Ошибка безопасности |
|
|