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

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

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

Регистрация: Jul 2012
Сообщений: 148
По умолчанию WebSocket не может соединиться

Не могу никак добиться конекта через вебсокет. Локально прекрасно работает, с сервера - кидает ошибку Security sandbox violation.

По идее, хост и порт с сервером и кросдоменом одни и те же, но не работает.

Код AS3:
Security.loadPolicyFile("http://ws.domain.ru:80/crossdomain.xml");
...
var websocket:WebSocket = new WebSocket("ws://ws.domain.ru/ws", "80");

Код:
<?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="*" secure="false" to-ports="*"/>  
  <site-control permitted-cross-domain-policies="master-only" />  
</cross-domain-policy>

Старый 07.08.2015, 08:39
bifidokk вне форума Посмотреть профиль Отправить личное сообщение для bifidokk Найти все сообщения от bifidokk
  № 2  
Ответить с цитированием
bifidokk
 
Аватар для bifidokk

Регистрация: Jan 2011
Сообщений: 200
без кода сервера точно и не скажешь, что у вас там.
по своему опыту, при коннекте к сокету кроссдомен запрашивается у демона сокета, а не просто дергается с домена.

например:
PHP код:
/**
     * Called when new data received.
     * @return void
     */
    
public function onRead()
    {
        
$line $this->read(4096);

        if( 
substr ($line022) == "<policy-file-request/>")
        {
            
$this->write($this->policy->getPolicy());
            return;
        }

        
GameCore::log('Connection sending message '$line);
        
$this->game->work($line);
    } 

Старый 07.08.2015, 12:17
Vlad84 вне форума Посмотреть профиль Отправить личное сообщение для Vlad84 Найти все сообщения от Vlad84
  № 3  
Ответить с цитированием
Vlad84

Регистрация: Jul 2012
Сообщений: 148
Кроссдомейн отдается nginx-ом при запросе 843 порта
Код:
server {
    listen 843;
    server_name localhost;

    location / {
        rewrite ^(.*)$ /crossdomain.xml;
    }

    error_page 400 /crossdomain.xml;

    location = /crossdomain.xml {
        root /usr/local/www/crossdomain;
    }
}

Переложил кросcдомейн на 843 порт. Т.е. теперь он отдается и без прямой ссылки на него, вот так
Код AS3:
Security.loadPolicyFile("ws.wsdomain.ru:843");
...
var websocket:WebSocket = new WebSocket("ws://ws.wsdomain.ru/server", "*");

Почему-то клиент лезет за кроссдомейником на 80й порт.
Код:
#2048: Security sandbox violation: http://swfdomain.ru/test.swf cannot load data from ws.wsdomain.ru:80

Мне бы хоть один рабочий пример. Не знаю на кого грешить, на php сервер или на клиента. Как можно протестить?


Последний раз редактировалось Vlad84; 07.08.2015 в 12:39.
Старый 08.08.2015, 10:39
bifidokk вне форума Посмотреть профиль Отправить личное сообщение для bifidokk Найти все сообщения от bifidokk
  № 4  
Ответить с цитированием
bifidokk
 
Аватар для bifidokk

Регистрация: Jan 2011
Сообщений: 200
попробуйте вообще выкинуть Security.loadPolicyFile("ws.wsdomain.ru:843");
кроссдомейн и без этого будет клиентом запрашиваться

Старый 10.08.2015, 13:21
Vlad84 вне форума Посмотреть профиль Отправить личное сообщение для Vlad84 Найти все сообщения от Vlad84
  № 5  
Ответить с цитированием
Vlad84

Регистрация: Jul 2012
Сообщений: 148
Решил проблему. Косяк был в том, что полиси-файл отдавался nginx-ом, а не вебсоккет сервером

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

Регистрация: Jan 2011
Сообщений: 200
Цитата:
Сообщение от Vlad84 Посмотреть сообщение
Решил проблему. Косяк был в том, что полиси-файл отдавался nginx-ом, а не вебсоккет сервером
я же выше писал об этом

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

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

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


 


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


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