Skip to content

Commit

Permalink
Update sources
Browse files Browse the repository at this point in the history
  • Loading branch information
kei-muranaka committed Sep 2, 2024
1 parent 2f575e9 commit b25623c
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Sources/Core/Channel/SKWChannel.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ NS_SWIFT_NAME(MemberInit)
@property NSString* _Nullable metadata;
/// MemberのKeepAliveの更新間隔時間
@property int keepaliveIntervalSec;
/// MemberのKeepAliveの更新間隔時間を超えてChannelからMemberが削除されるまでの時間
@property int keepaliveIntervalGapSec;

@end

Expand Down
3 changes: 3 additions & 0 deletions Sources/Core/Channel/SKWChannel.mm
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,9 @@ - (void)joinWithInit:(SKWMemberInit*)init
if (init.keepaliveIntervalSec != 0) {
nativeInit.keepalive_interval_sec = init.keepaliveIntervalSec;
}
if (init.keepaliveIntervalGapSec != 0) {
nativeInit.keepalive_interval_gap_sec = init.keepaliveIntervalGapSec;
}
}

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
Expand Down
7 changes: 7 additions & 0 deletions Sources/Room/Member/RoomMember.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ import SkyWayCore
return core.metadata
}

/// メンバーサイド
///
/// このクライアントで生成されたメンバーの場合localになります。
@objc public var side: Side {
return core.side
}

/// ステート
///
/// Leftの場合、このオブジェクトの操作は無効です。
Expand Down
11 changes: 10 additions & 1 deletion Sources/Room/Room/Room.swift
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,24 @@ import SkyWayCore
///
/// Memberの退出はMemberの`leave()`または、権限があればRoomの`leave(_:)`でも退出させることができますが、退出処理を行わずアプリケーションがクラッシュした時、SkyWayを終了した時などは情報に不整合が発生し、RemoteMemberから見るとまだRoomに存在するように見えます。
///
/// このオプションではSkyWayサーバとのkeepalive時間を設定することでその不整合が起こる時間を設定できます
/// このオプションではSkyWayサーバとのkeepalive時間を設定することでその不整合を解消するまでの時間を設定できます
///
/// 短すぎる設定では、頻繁にサーバに対してリクエストをすることになるのでパフォーマンスが低下する恐れがあります。
public var keepaliveIntervalSec: Int32 = 0
/// MemberのKeepAliveの更新間隔時間を超えてRoomからMemberが削除されるまでの時間(秒)
///
/// デフォルトは30秒です。
///
/// `keepaliveIntervalSec`と同様に、SkyWayサーバにおけるMemberの存在情報の不整合を解消するまでの時間を設定できます。
///
/// 短すぎる設定では、正常な通信であってもRoomから退出させられてしまう恐れがあります。
public var keepaliveIntervalGapSec: Int32 = 0
func toCore() -> MemberInit {
let core: MemberInit = .init()
core.name = name
core.metadata = metadata
core.keepaliveIntervalSec = keepaliveIntervalSec
core.keepaliveIntervalGapSec = keepaliveIntervalGapSec
return core
}
}
Expand Down

0 comments on commit b25623c

Please sign in to comment.