возникли проблемы при интеграции Kaazing с моим веб-сайтом: невозможно отправить сообщение в X. Получатель имеет происхождение Y - PullRequest
1 голос
/ 21 ноября 2011

Я получаю сообщение об ошибке при попытке интегрировать версию Kaazing jms с моим сайтом .net и брокером сообщений activemq:

Невозможно отправить сообщение на http://www.xgateway.com:8001. Получатель имеет происхождение http://www.x.com.

Когда я пытаюсь создать клиент javascript, размещенный на моем веб-сайте Asp .NET, пытающимся подключиться к шлюзу kaazing.

Я знаю, что у меня все настроено нормально, потому что я могу перейти к www.xgateway.com:8001, и я могу просмотреть всю документацию и запустить демонстрации. Я запустил демо тикера и наблюдаю, как он работает отлично. так что все настройки кажутся в порядке.

Теперь проблема в том, что у меня также есть сайт asp .net, размещенный на IIS 7 на той же машине. я пытаюсь создать клиенты javascript, размещенные на моем веб-сайте .net (порт 80), которые подключаются к шлюзу kaazing. Но я продолжаю получать вышеуказанную ошибку перекрестного происхождения.

В моем клиенте я ссылаюсь на StompJms.js в соответствии с инструкциями. Я правильно настроил activemq и работаю так же, как и брокер сообщений. Все работающие демонстрации доказывают, что все настроено правильно.

Я также предпринял следующие шаги, следуя инструкциям в документации:


Скопируйте файл GATEWAY_HOME / lib / client / javascript / PostMessageBridge.html и отправьте его с исходного веб-сервера источника (http://www.example.com);, например, http://www.example.com/bridge/PostMessageBridge.html. Примечание. Необходимо убедиться, что файл PostMessageBridge.html размещен в том же источнике (той же схеме, хосте и порте), что и веб-сервер.

Добавьте следующие теги (показанные в строках 2 и 3) в раздел главной страницы приложения:

<head>
<meta name="kaazing:postMessageBridgeURL"
      content="http://www.x.com/PostMessageBridge.html" >
.
.
.
</head>

но все равно получаю ошибку. Что еще мне не хватает?

1 Ответ

2 голосов
/ 21 ноября 2011

Поскольку номера портов, используемые вашим приложением .NET и вашим шлюзом kaazing websocket, различаются, они считаются отдельными сайтами.Следовательно, вам нужно указать межсайтовое ограничение для вашего сервиса.

Вот пример кода, который вам нужно добавить в ваш gateway-config.xml:

<service>
  <accept>ws://localhost:8001/remoteService</accept>
  <connect>tcp://localhost:61613</connect>

  <type>stomp.proxy</type>

  <auth-constraint>
    <require-role>AUTHORIZED</require-role>
  </auth-constraint>

  <cross-site-constraint>
    <allow-origin>http://localhost:8000</allow-origin>
  </cross-site-constraint>
</service>

И здесь вы найдете подробную документацию по теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...