1

Kaazing jms バージョンを .net Web サイトおよび activemq メッセージ ブローカーと統合しようとすると、エラーが発生し続けます。

http://www.xgateway.com:8001にメッセージを投稿できません。受信者のオリジンはhttp://www.x.comです。

Asp .NET Web サイトでホストされている JavaScript クライアントを構築しようとすると、kaazing ゲートウェイに接続しようとします。

私は、www.xgateway.com:8001すべてのドキュメントにアクセスして参照し、デモを実行できるので、すべてが正常にセットアップされていることを知っています。株式ティッカーのデモを実行して、完全に動作することを確認しました。したがって、すべてのセットアップは問題ないようです。

問題は、同じマシンの IIS 7 でホストされている asp .net Web サイトも持っていることです。kaazing ゲートウェイに接続する .net Web サイト (ポート 80) でホストされている JavaScript クライアントを構築しようとしています。しかし、上記のクロスオリジンエラーが発生し続けます。

私のクライアントでは、指示に従って StompJms.js を参照しています。私はactivemqを適切にセットアップし、メッセージブローカーと同様に機能しています。動作するすべてのデモは、すべてが適切にセットアップされていることを証明しています。

ドキュメントの指示に従って、次の手順も実行しました。


ファイル GATEWAY_HOME/lib/client/javascript/PostMessageBridge.html をコピーし、ソース元の Web サーバー ( http://www.example.com ) から提供します。たとえば、http://www.example.com/bridge/PostMessageBridge.htmlにあります。注: PostMessageBridge.html ファイルが Web サーバーと同じオリジン (同じスキーム、ホスト、およびポート) でホストされていることを確認する必要があります。

次のタグ (2 行目と 3 行目) をメイン アプリケーション ページのセクションに追加します。

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

それでもエラーが発生します。他に何が欠けていますか?

4

1 に答える 1

2

.NETアプリとkaazingWebSocketゲートウェイで使用されるポート番号が異なるため、これらは別個のサイトと見なされます。したがって、サービスにクロスサイト制約を指定する必要があります。

以下は、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>

そして、ここにこのトピックに関する詳細なドキュメントがあります。

于 2011-11-21T02:47:35.787 に答える