shiguredo / sora-ios-sdk

WebRTC SFU Sora iOS SDK
https://sora-ios-sdk.shiguredo.jp/
Apache License 2.0
41 stars 8 forks source link

metadata のデータ形式について #27

Closed FromAtom closed 5 years ago

FromAtom commented 5 years ago

Sora iOS SDKにて定義されている struct Configurationpublic var metadata: String? について質問です。

JavaScript SDKではここにセットされたJSON形式の文字列が、サーバサイドでJSONとして認識されパーズされるのですが、iOS SDKでは文字列のままサーバサイドに到達します。そのため、metadataを用いた認証処理が正常に動かないため、サーバサイドでは

if params[:metadata].is_a?(String)
    # iOS SDKから送られるmetadataはStringになっているのでJSONとしてパーズする
    metadata = JSON.parse(params[:metadata], symbolize_names: true)
elsif params[:metadata].is_a?(Hash)
    # Web SDKから送られるmetadataはHashになっているのでそのまま使う
    metadata = params[:metadata]
else
    return ''
end

といった対応コードを書いています。iOS SDKでは文字として送られ、JavaScript SDKではJSONにパーズできる形で送られるのは仕様なのでしょうか?それとも、iOSクライアントサイドで行う処理が抜け落ちているのでしょうか?

szktty commented 5 years ago

@FromAtom 現時点では文字列として扱うという仕様になってしまっているため、サーバーサイドでの調整をお願いします。

現在 JavaScript SDK の挙動に合わせられるよう、各 SDK での metadata の扱いの見直しを進めています。お手数をおかけしますが、 API 変更のリリースまで SDK ごとに処理を分けて頂けると助かります。

ご迷惑をおかけして申し訳ありません。

FromAtom commented 5 years ago

@szktty なるほど、サーバサイドで対応するのが正解だと分かって良かったです。ご返答いただきありがとうございました。