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

通过第 308 行调试RtmpClient终于让我解决了这个问题。

您必须将该NetConnection.Client属性设置为包含与服务器调用的方法具有相同签名的方法的类(在我的情况下this,因为该方法在 Program 类中)。

    public void onServerDataPush(string type, string json)
    {

    }

FluorineFx 然后使用反射调用该方法。

于 2011-06-10T09:45:29.050 回答