我正在尝试创建一个基本的控制台应用程序,以便对基于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;
}
}
答案 0 :(得分:1)
通过RtmpClient
第308行进行调试最终让我解决了这个问题。
您必须将NetConnection.Client
属性设置为包含与服务器调用的签名具有相同签名的方法的类(在我的情况下为this
,因为该方法位于Program类中)
public void onServerDataPush(string type, string json)
{
}
然后FluorineFx使用反射调用该方法。