0

red5 v0.9 の最新の svn バージョンを使用しています。

関数appConnect(Iconnection conn,Object[] params)

タイプ ObjectMap の配列を提供します。

params[0] を、作成した ConnectParams クラスに変換したいと思います。

public class ConnectParams extends Object {

    public Double toolkitVersion;
    public String gameName;
    public Integer userId;
    public Integer challengeId;

}

次のコマンドを使用して変換しようとすると: ConnectParams param = (ConnectParams)params[0];

次のエラーが表示されます。

java.lang.ClassCastException: org.red5.io.utils.ObjectMap cannot be cast to com.xpogames.ConnectParams

Flash側では、同じクラスの同じ定義があり、それをパラメーターとして送信しています。

red5 Java 側では、params[0].toString() を出力すると、送信した ConnectParams クラスのすべてのキーと値が表示されます。つまり、欠けているのは、この ObjectMap を次のように変換する方法だけです。適切なクラス タイプ。

4

1 に答える 1

1

params [0]をハッシュマップにキャストし、それをクラスのコンストラクターに渡すことで問題を解決しました。そのクラスでは、クラスにデータを入力するために.get()と.containsKey()を使用します。

ConnectParams param = new ConnectParams((HashMap<String,Object>)params[0]);
于 2010-01-24T10:31:42.577 に答える