|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2010
Сообщений: 69
|
"Error:Security sandbox violation" при подключении SWF к Nodejs в браузере
Давно не публиковал SWF в браузере. Вообщем. Есть игра, которая коннектится к серверу Nodejs(через обычный flash.net.Socket). Всё работает прекрасно для AIR-android и Flash Player(при запуске не в браузере). Как только SWF в браузере, то при попытке подключения к серверу прилетает :
Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation Примечание: crossdomain отдаётся сервером как нужно, allowDomain("*"), думаю не в этом дело. Думаю что дело вот в чём: При запуске в браузере Security.sandboxType = remote, а при обычном(AIR-android или Flash Player) пишет localTrusted. Если этот параметр определяется автоматически, то как быть? http://help.adobe.com/ru_RU/FlashPla...ml#sandboxType Запускался SWF с разных хостингов(в том числе и vk, и просто локально), результат один и тот же. Перепробовал уже всё что было в гугле. Форум последняя надежда. |
|
|||||
Регистрация: Dec 2010
Сообщений: 69
|
var port = process.env.PORT || 5000; var server = http.createServer(function(req, res){ if (req.url=='/crossdomain.xml'){ var crossD=''; res.writeHead(200,{ 'Content-Type': 'text/xml' }); crossD+='<?xml version="1.0"?>\n'; crossD+='<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">\n'; crossD+='<cross-domain-policy>\n'; crossD+='<site-control permitted-cross-domain-policies="all"/>\n'; crossD+='<allow-access-from domain="*" to-ports="*" secure="false"/>\n'; crossD+='</cross-domain-policy>\n'; res.end(crossD); } }); Так же пробовал https://www.npmjs.com/package/crossdomain использовать, чтобы уж наверняка. Последний раз редактировалось Termer; 25.10.2015 в 17:39. |
|
|||||
А где код с клиента?
Клиент должен получать его по xmlsocket протоколу С того порта, на котором отдает его сервер После чего сервер должен рубануть соединение, а клиент должен заново переподключиться |
|
|||||
Регистрация: Dec 2010
Сообщений: 69
|
Хм..у меня Security.loadPolicyFile("http://example.com:5000/crossdomain.xml"); Т.е при переходе по ссылке
http://example.com:5000/crossdomain.xml отображается собственно crossdomain. Или такое вообще не годится и нужно именно через xmlsocket-протокол отправлять? |
|
|||||
Регистрация: Dec 2010
Сообщений: 69
|
Не получилось отправить crossdomain через xmlsocket. В проекте Использую heroku и WebSocketServer(https://github.com/websockets/ws). Продолжил гуглить. Нашёл ситуацию аналогичную моей: https://github.com/websockets/ws/issues/485 Человек якобы решил проблему:
var wss = new WebSocketServer({ port: 8080 }); wss._server.on('connection', function(socket) { var emit = socket.emit; socket.emit = function (event) { if (event == 'data') checkPolicy(arguments[1]); emit.apply(socket, arguments); } function checkPolicy(data) { if (data == '<policy-file-request/>\0') socket.end('<cross-domain-policy><allow-access-from domain="*" to-ports="*" /></cross-domain-policy>'); socket.emit = emit; delete emit; } }); |
|
|||||
Регистрация: Dec 2010
Сообщений: 69
|
Проблема была отложена, но теперь пришлось опять к ней вернутся. Возможно кто нибудь в свободное время попробует запустить связку: web-версия приложения с Socket + Heroku Node js. Я уже перепробовал отправлять на разные порты, но по http приходят данные, а по xmlsocket пусто, как будто и не умеет работать с протоколом.
|
Часовой пояс GMT +4, время: 03:07. |
|
« Предыдущая тема | Следующая тема » |
|
|