2009-06-26 10 views
2

FluorineFXを使用してFlex/.NETで非常に簡単なチャットアプリケーションを作成しようとしていますが、動作させることはできません。Flex/.NET:FluorineFXを使用した簡単なチャットアプリケーション

<mx:VBox 
    width="100%" 
    height="100%" 
    xmlns:mx="http://www.adobe.com/2006/mxml"> 

<mx:Style source="../../../Monkeywrench.css"/> 

<mx:Script> 
<![CDATA[ 

import mx.controls.Alert; 
import mx.rpc.events.FaultEvent; 
import mx.rpc.events.ResultEvent; 
import mx.messaging.*; 
import mx.messaging.messages.*; 
import mx.messaging.events.*; 
import mx.core.Application; 

private function messageHandler(event:MessageEvent):void 
{ 
    txtLog.text += event.message.body.userId + ": " + event.message.body.text + "\n"; 
} 

private function messagefaultHandler(event:MessageFaultEvent):void 
{ 
    Alert.show(event.faultString, "Error"); 
} 

public function sendMessage():void 
{ 
    var message:AsyncMessage = new AsyncMessage(); 
    message.body = {userId: Application.application.auth.user.Email, text: txtOutput.text} 
    producer.send(message); 
    txtOutput.text=""; 
} 

]]> 
</mx:Script> 

<mx:Consumer id="consumer" destination="chat" message="messageHandler(event)" fault="messagefaultHandler(event)"/> 
<mx:Producer id="producer" destination="chat" fault="messagefaultHandler(event)"/> 

<mx:TextArea height="100%" width="100%" editable="false" id="txtLog"/> 

<mx:HBox width="100%"> 

    <mx:TextInput width="100%" id="txtOutput"/> 
    <mx:Button label="Skicka" click="sendMessage()"/> 

</mx:HBox> 

</mx:VBox> 

マイサービス-config.xmlに:私はすべてのエラーでなく、ノー結果を得ることはありません送信しようとすると

<?xml version="1.0" encoding="utf-8" ?> 
<services-config> 
    <services> 

     <service id="message-service" class="flex.messaging.services.MessageService" messageTypes="flex.messaging.messages.AsyncMessage"> 
      <adapters> 
       <adapter-definition id="messagingAdapter" class="FluorineFx.Messaging.Services.Messaging.MessagingAdapter" default="true"/> 
      </adapters> 
      <destination id="chat"> 
       <adapter ref="messagingAdapter"/> 
       <channels> 
        <channel ref="my-rtmp"/> 
       </channels> 
       <properties> 
        <network> 
         <session-timeout>20</session-timeout> 
        </network> 
        <server> 
         <allow-subtopics>true</allow-subtopics> 
        </server> 
       </properties> 
       <!-- 
       <security> 
        <security-constraint ref="privileged-users"/> 
       </security> 
       --> 
      </destination> 
     </service> 

    </services> 

    <channels> 

     <channel-definition id="my-rtmp" class="mx.messaging.channels.AMFChannel"> 
      <endpoint uri="rtmp://{server.name}:1950" class="flex.messaging.endpoints.RTMPEndpoint"/> 
     </channel-definition> 

    </channels> 
</services-config> 

それはすべての罰金をコンパイルし、そしてです。メッセージは受信されません。私は正しい道にいますか?エンドポイントURIの背後にあるロジックは何ですか?どのポートを使用すればよいですか? Web.configを設定する必要がありますか? (RemotingServiceを有効にするflourinefx設定を超えていますか?)私はflourine.logで何の応答も得ていません。

+1

ファイアウォールがポート1950をブロックしている可能性があります。 –

答えて

2

AMFChannel/AMFEndpointをRTMPに使用することはできません。代わりにservices-config.xmlの下のコードを使用してみてください。

<channel-definition id="channelRtmp" class="mx.messaging.channels.RTMPChannel"> 
    <endpoint uri="rtmp://{server.name}:1935" class="flex.messaging.endpoints.RTMPEndpoint"/> 
</channel-definition> 
関連する問題