解放・破棄処理
リソースとは、SDK で生成される全てのインスタンスおよびそのメモリを指します。
Room の管理
Room インスタンスは操作不要な状態になるまでアプリケーションで管理してください。
OK
SWSFURoom? room = await SWSFURoom.FindOrCreate("room", "");
// 入室
var memberInit = new SWRoomMemberOptions
{
name = "member001"
};
var localMember = await room.Join(memberInit);
...
// 退出
localMember.Leave()
// Roomを含むリソースが不要になった
room.Dispose()
room = nullNG
SWSFURoom? room = await SWSFURoom.FindOrCreate("room", "");
// 入室
var memberInit = new SWRoomMemberOptions
{
name = "member001"
};
var localMember = await room.Join(memberInit);
...
// 破棄
room = null
// 危険: クラッシュする可能性があります
localMember.Publish(stream)Room を閉じた後の挙動
誰かが明示的に Room を閉じたときに Member が入室していた場合、 Publish と Subscribe を中止して退出します。
Room を閉じた後にそこで生成されたリソースの操作はエラーになります。
SkyWayを終了する
アプリケーションにおいて SkyWay の機能を利用しなくなった場合、SkyWayContext.Dispose() をコールすることで SkyWay サーバーとの通信を切断し、SDK で管理している全てのリソースを破棄します。
Member の Room の退出処理は行うことは必要です。
また、SkyWayContext.Dispose() をコールした後、それまで生成したリソース(インスタンス)にアクセスしないでください。
アクセスした場合の挙動は未定義でアプリケーションがクラッシュする可能性があります。
Dispose() 後に再度 Setup(monoBehaviour, token, option) することで再度 SkyWay サーバーと接続できます。