Table of Contents

Class JanusClient

Namespace
Twikit.Spaces
Assembly
Twikit.dll

最小限の Janus ゲートウェイクライアント(janus.plugin.videoroom)。 Web クライアントと同じく、HTTP ロングポールでイベントを受け、transaction でレスポンスを突き合わせ、 毎リクエスト Authorization: <vidManToken> を付けます。

public sealed class JanusClient
Inheritance
JanusClient
Inherited Members

Constructors

JanusClient(string, string, SpacesHttp, string, string)

public JanusClient(string janusUrl, string vidManToken, SpacesHttp http, string periscopeUserId = "", string roomId = "")

Parameters

janusUrl string
vidManToken string
http SpacesHttp
periscopeUserId string
roomId string

Properties

HandlerId

public long? HandlerId { get; }

Property Value

long?

JanusUrl

public string JanusUrl { get; }

Property Value

string

OnAttached

attached / updated のストリーム一覧。

public Action<JsonArray>? OnAttached { get; set; }

Property Value

Action<JsonArray>

OnJsep

JSEP(SDP)を受け取ったときに呼ばれます。

public Action<JsonObject, JsonObject>? OnJsep { get; set; }

Property Value

Action<JsonObject, JsonObject>

OnPublisherId

videoroom に joined したときの publisher id。

public Action<long>? OnPublisherId { get; set; }

Property Value

Action<long>

OnPublishers

publishers 一覧を受け取ったとき。

public Action<JsonArray>? OnPublishers { get; set; }

Property Value

Action<JsonArray>

OnRawEvent

すべての生イベント。

public Action<JsonObject>? OnRawEvent { get; set; }

Property Value

Action<JsonObject>

PeriscopeUserId

public string PeriscopeUserId { get; }

Property Value

string

RoomId

public string RoomId { get; }

Property Value

string

SessionId

public long? SessionId { get; set; }

Property Value

long?

VidManToken

public string VidManToken { get; }

Property Value

string

Methods

AttachAsync()

public Task<long> AttachAsync()

Returns

Task<long>

CloseAsync()

public Task CloseAsync()

Returns

Task

CreateAsync()

public Task<long> CreateAsync()

Returns

Task<long>

CreateRoomAsync(bool)

public Task CreateRoomAsync(bool withDummyPublisher = false)

Parameters

withDummyPublisher bool

Returns

Task

DestroyAsync()

public Task DestroyAsync()

Returns

Task

DestroyRoomAsync()

public Task DestroyRoomAsync()

Returns

Task

DetachAsync()

public Task DetachAsync()

Returns

Task

JoinAsPublisherAsync(string)

public Task JoinAsPublisherAsync(string display = "")

Parameters

display string

Returns

Task

JoinAsSubscriberAsync(IEnumerable<JsonObject>)

public Task JoinAsSubscriberAsync(IEnumerable<JsonObject> streams)

Parameters

streams IEnumerable<JsonObject>

Returns

Task

LeaveAsync()

public Task LeaveAsync()

Returns

Task

ListParticipantsAsync()

現在の Janus ルーム参加者を返します。

public Task<List<JsonObject>> ListParticipantsAsync()

Returns

Task<List<JsonObject>>

SendSdpAnswerAsync(string)

サーバーの SDP offer に answer します(サブスクライバー側、start)。

public Task<JsonObject> SendSdpAnswerAsync(string sdp)

Parameters

sdp string

Returns

Task<JsonObject>

SendSdpOfferAsync(string, string, string, string, bool)

public Task SendSdpOfferAsync(string sdp, string streamName = "", string sessionUuid = "", string vidManToken = "", bool iceRestart = false)

Parameters

sdp string
streamName string
sessionUuid string
vidManToken string
iceRestart bool

Returns

Task

StartPolling()

public void StartPolling()

SubscribeAsync(IEnumerable<JsonObject>)

public Task SubscribeAsync(IEnumerable<JsonObject> streams)

Parameters

streams IEnumerable<JsonObject>

Returns

Task

SwitchStreamsAsync(IEnumerable<JsonObject>)

public Task SwitchStreamsAsync(IEnumerable<JsonObject> streams)

Parameters

streams IEnumerable<JsonObject>

Returns

Task

UnpublishAsync()

public Task UnpublishAsync()

Returns

Task

UpdateStreamsAsync(IEnumerable<JsonObject>?, IEnumerable<JsonObject>?)

public Task UpdateStreamsAsync(IEnumerable<JsonObject>? subscribe = null, IEnumerable<JsonObject>? unsubscribe = null)

Parameters

subscribe IEnumerable<JsonObject>
unsubscribe IEnumerable<JsonObject>

Returns

Task

WaitForEventAsync(double)

1 回ロングポールして(イベントが来るまで待って)返します。

public Task<JsonObject?> WaitForEventAsync(double timeoutSeconds = 15)

Parameters

timeoutSeconds double

Returns

Task<JsonObject>