0

FluorineFxベースのフラッシュリモートサーバーのストレステストを行うために、基本的なコンソールアプリを作成しようとしています。

正常に接続できますが、呼び出しているサーバーメソッドは次のクライアント側関数を呼び出します。

connection.Invoke("onServerDataPush", new string[] { "someParam", "anotherParam" });

このメソッドを接続に公開する方法を見つけるのに苦労しています。NetConnection.Call()メソッドを使用すると、コールバックを渡すことができますが、この結果は常にnullであり、NetConnection呼び出しは次のエラーで失敗します。

Could not find a suitable method with name onServerDataPush

これが私のクライアント側のコードです:

class Program
{
    private NetConnection _netConnection;

    static void Main(string[] args)
    {
        var program = new Program();
        program.Connect();
        Console.ReadLine();
    }

    public void Connect()
    {
        _netConnection = new NetConnection();
        _netConnection.ObjectEncoding = ObjectEncoding.AMF3;
        _netConnection.OnConnect += netConnection_OnConnect;
        _netConnection.NetStatus += netConnection_NetStatus;
        _netConnection.Connect("rtmp://localhost:1935/MyApplication");
    }

    void netConnection_OnConnect(object sender, EventArgs e)
    {
        var responder = new Responder<object>(x =>
                                                  {
                                                      var test = x;
                                                  });

        //The NetConnection object is connected now
        _netConnection.Call("MyServerMethod", responder, "someParameter");
    }
    void netConnection_NetStatus(object sender, NetStatusEventArgs e)
    {
        string level = e.Info["level"] as string;
    }
}
4

1 に答える 1

1

RtmpClient行308を介してデバッグすることで、最終的にこれを解決することができました。

NetConnection.Clientサーバーによって呼び出されているものと同じシグネチャのメソッドを含むクラスにプロパティを設定する必要があります(私の場合this、メソッドはProgramクラスにあります)。

    public void onServerDataPush(string type, string json)
    {

    }

次に、FluorineFxは反射を使用してメソッドを呼び出します。

于 2011-06-10T09:45:29.050 に答える