Type Aliases App Action App Action: typeof AppActions [ number ]
App Scope Type declaration Optional actions?: readonly AppAction [] id: string Optional turn?: boolean Audio Media Track Constraints Audio Media Track Constraints: { autoGainControl?: ConstrainBoolean ; channelCount?: ConstrainULong ; deviceId?: ConstrainDOMString ; echoCancellation?: ConstrainBoolean ; latency?: ConstrainDouble ; noiseSuppression?: ConstrainBoolean ; sampleRate?: ConstrainULong ; sampleSize?: ConstrainULong ; suppressLocalAudioPlayback?: ConstrainBoolean ; volume?: number }
Type declaration Optional auto Gain Control?: ConstrainBoolean Optional channel Count?: ConstrainULong Optional device Id?: ConstrainDOMString Optional echo Cancellation?: ConstrainBoolean Optional latency?: ConstrainDouble Optional noise Suppression?: ConstrainBoolean Optional sample Rate?: ConstrainULong Optional sample Size?: ConstrainULong Optional suppress Local Audio Playback?: ConstrainBoolean Optional volume?: number Auth Token Auth
Token
: { exp
: number ; iat
: number ; jti
: string ; scope
: { app
: AppScope } } Type declaration exp: number iat: number jti: string Channel Action Channel Action: typeof ChannelActions [ number ]
Channel Scope Type declaration [ key: string ]: unknown Optional id?: string Optional name?: string Optional sfu Bots?: SfuScope [] Channel State Channel State: "opened" | "closed"
Codec Codec
: { mimeType
: string ; parameters
?: Partial < CodecParameters > ; rate
?: number } Type declaration mime Type: string Optional parameters?: Partial < CodecParameters > Optional rate?: number Codec Parameters Codec Parameters: { usedtx: boolean | number }
Type declaration [ key: string ]: any usedtx: boolean | number Content Type Content Type: "audio" | "data" | "video"
Data Stream Message Type Data Stream Message Type: string | ArrayBuffer | object
Data Stream Options Data Stream Options: { maxPacketLifeTime?: number ; maxRetransmits?: number ; ordered?: boolean }
Type declaration Optional max Packet Life Time?: number Optional max Retransmits?: number Optional ordered?: boolean Encoding Parameters Encoding Parameters: { id?: string ; maxBitrate?: number ; maxFramerate?: number ; scaleResolutionDownBy?: number }
Type declaration Optional id?: string Optional max Bitrate?: number Optional max Framerate?: number Optional scale Resolution Down By?: number Forwarding Action Forwarding Action: typeof ForwardingActions [ number ]
List Changed Event List Changed Event: {}
Local Media Stream Options Local Media Stream Options: { isDisplayMedia: boolean ; stopTrackWhenDisabled: boolean }
Type declaration is Display Media: boolean stop Track When Disabled: boolean Log Format Log Format: "object" | "string"
Member Action Member Action: typeof MemberActions [ number ]
Member Keep Alive Config Member Keep Alive Config: { keepaliveIntervalGapSec: number ; keepaliveIntervalSec: number }
Type declaration keepalive Interval Gap Sec: number keepalive Interval Sec: number Member Metadata Updated Event Member
Metadata
Updated
Event
: { member
: RoomMember ; metadata
: string } Member Scope Type declaration Optional id?: string Optional name?: string Member Side Member Side: "local" | "remote"
Member State Member State: "joined" | "left"
Member Type Member Type: "person" | "bot"
Person Init Person
Init
: { metadata
?: MemberInit [ "metadata" ] ; name
?: MemberInit [ "name" ] } & Partial < MemberKeepAliveConfig > & MemberInternalConfig Publication Action Publication Action: typeof PublicationActions [ number ]
Publication Metadata Updated Event Publication
Metadata
Updated
Event
: { metadata
: string ; publication
: RoomPublication } Publication Options Type declaration Optional codec Capabilities?: Codec [] Optional metadata?: string Publication State Publication State: "enabled" | "disabled" | "canceled"
Publication State Changed Event Replace Stream Options Replace Stream Options: { releaseOldStream?: boolean }
Type declaration Optional release Old Stream?: boolean Room Closed Event Room Closed Event: {}
Room Init Base Room
Init
Base
: { metadata
?: string ; name
?: string ; type
: RoomType } Type declaration Optional metadata?: string Optional name?: string Room Metadata Updated Event Room Metadata Updated Event: { metadata: string }
Sfu Api Options Sfu
Api
Options
: { domain
: string ; log
: { format
: LogFormat ; level
: LogLevel } ; secure
: boolean ; version
: number } Type declaration domain: string secure: boolean version: number Sfu Bot Action Sfu Bot Action: typeof SfuBotActions [ number ]
Sfu Bot Plugin Options Sfu
Bot
Plugin
Options
: Omit < SfuApiOptions , "log" > & { ackTimeout
: number ; disableRestartIce
: boolean ; endpointTimeout
: number } Sfu Room Publication Options Sfu Room Publication Options: { maxSubscribers?: number }
Type declaration Optional max Subscribers?: number Sfu Subscription Action Sfu Subscription Action: typeof SfuSubscriptionActions [ number ]
Sky Way Config Options Type declaration log: Partial < { format: LogFormat ; level: LogLevel } > rtc Config: { encodedInsertableStreams?: boolean ; turnPolicy?: TurnPolicy ; turnProtocol?: TurnProtocol } Optional encoded Insertable Streams?: boolean Optional turn Policy?: TurnPolicy token: { updateReminderSec?: number } Optional update Reminder Sec?: number Subscription Action Subscription Action: typeof SubscriptionActions [ number ]
Subscription Options Subscription Options: { preferredEncodingId?: string }
Type declaration Optional preferred Encoding Id?: string Subscription State Subscription State: "enabled" | "canceled"
Transport Connection State Transport Connection State: "new" | "connecting" | "connected" | "reconnecting" | "disconnected"
Turn Policy Turn Policy: "enable" | "disable" | "turnOnly"
Turn Protocol Turn Protocol: "all" | "udp" | "tcp" | "tls"
Video Media Track Constraints Video Media Track Constraints: { aspectRatio?: ConstrainDouble ; deviceId?: ConstrainDOMString ; facingMode?: ConstrainDOMString ; frameRate?: ConstrainDouble ; height?: ConstrainULong ; width?: ConstrainULong }
Type declaration Optional aspect Ratio?: ConstrainDouble Optional device Id?: ConstrainDOMString Optional facing Mode?: ConstrainDOMString Optional frame Rate?: ConstrainDouble Optional height?: ConstrainULong Optional width?: ConstrainULong WebRTCStats WebRTCStats: { id: string ; type: string } []
Variables Const PACKAGE_ VERSIONPACKAGE_ VERSION: "1.6.1" = '1.6.1'
Const Sky Way Stream FactoryConst errorserrors: { alreadyChannelClosed: { detail: "ChannelがすでにCloseされています" ; name: "alreadyChannelClosed" ; solution: "ありません" } ; alreadyLocalPersonExist: { detail: "ChannelにすでにLocalPersonが存在します。一つのChannelインスタンスにはLocalPersonが一つしかJoinできません" ; name: "alreadyLocalPersonExist" ; solution: "複数のLocalPersonを用意したい場合は個別にChannelインスタンスを用意してください。" } ; alreadyPublishedStream: { detail: "すでにPublishしたStreamを再度Publishすることはできません You cannot re-publish a stream that has already been published" ; name: "alreadyPublishedStream" ; solution: "そのStreamをPublishしたPublicationをUnpublishするか、別の新しいStreamを作ってPublishしてください Unpublish the publication that published that stream, or create another new stream and publish it" } ; alreadySameNameMemberExist: { detail: "Channelにすでに同じNameのMemberが存在します" ; name: "alreadySameNameMemberExist" ; solution: "別のNameを使用してください" } ; alreadySubscribedPublication: { detail: "すでにSubscribeしたPublicationをSubscribeすることはできません" ; name: "alreadySubscribedPublication" ; solution: "ありません" } ; backendError: { detail: "" ; name: "backendError:" ; solution: "" } ; canNotEnableRemotePublication: { detail: "remoteのPublicationをenableすることはできません" ; name: "canNotEnableRemotePublication" ; solution: "対象のPublicationがLocalのものか確認してください" } ; canNotUseReplaceStream: { detail: "remoteのPublicationからreplaceStreamできません" ; name: "canNotUseReplaceStream" ; solution: "対象のPublicationがLocalのものか確認してください" } ; cantMoveSameIdChannel: { detail: "moveChannelで同じidのChannelに移動することは出来ません" ; name: "cantMoveSameIdChannel" ; solution: "移動先のChannelが正しいか確かめてください" } ; confirmSubscriptionFailed: { detail: "Forwardingのconsume許可を出すのに失敗しました" ; name: "confirmSubscriptionFailed" ; solution: "ありません" } ; connectRtcApiFailed: { detail: "RtcAPIへの接続に失敗しました" ; name: "connectRtcApiFailed" ; solution: "インターネットへの接続できているか、もしくはTokenのパラメータが正しいかを確かめてください" } ; consumerNotFound: { detail: "SFUはLocalPersonがUnsubscribeしたSubscriptionを操出来ません" ; name: "consumerNotFound" ; solution: "操作対象のSubscriptionが正しいか確かめてください" } ; correspondingEncodeNotExistForId: { detail: "指定されたIDに対応するEncode設定が存在しません" ; name: "correspondingEncodeNotExistForId" ; solution: "正しいEncodingIDを指定してください" } ; dataStreamNotSupportEncoding: { detail: "dataStreamはEncode設定の変更に対応していません" ; name: "dataStreamNotSupportEncoding" ; solution: "ありません" } ; dataStreamNotSupported: { detail: "dataStreamはSFUに対応していません" ; name: "dataStreamNotSupported" ; solution: "ありません" } ; disabledDataStream: { detail: "関連するPublicationがDisableなDataStreamには書き込みできません" ; name: "disabledDataStream" ; solution: "関連するPublicationをEnableしてから書き込んでください" } ; forwardingNotFound: { detail: "存在しないForwardingを操作しようとしています" ; name: "forwardingNotFound" ; solution: "対象のForwardingが正しいか確かめてください" } ; insufficientPermissions: { detail: "tokenの権限が不足しています" ; name: "insufficientPermissions" ; solution: "tokenに必要な権限を付与してください" } ; internal: { detail: "" ; name: "internal" ; solution: "" } ; invalidArgumentValue: { detail: "引数の値が不正です" ; name: "invalidArgumentValue" ; solution: "正しい値を引数に渡してください" } ; invalidContentType: { detail: "contentTypeが正しくありません" ; name: "invalidContentType" ; solution: "ContentTypeを確認してください" } ; invalidElement: { detail: "渡されたHTML Elementが正しくありません" ; name: "invalidElement" ; solution: "要求された正しいElementを渡してください" } ; invalidEncodings: { detail: "エンコード設定が設定されていません。エンコード設定切り替え機能が使えません" ; name: "invalidEncodings" ; solution: "エンコード設定切り替え機能を利用する場合はエンコード設定をしたPublicationをForwardingしてください" } ; invalidExpireTokenValue: { detail: "tokenのExpire時刻が不正です" ; name: "invalidExpireTokenValue" ; solution: "正しい時刻を指定してください" } ; invalidParameter: { detail: "" ; name: "invalidParameter" ; solution: "" } ; invalidPreferredEncoding: { detail: "preferredEncodingの値が不正です。エンコード設定切り替え機能が使えません" ; name: "invalidPreferredEncoding" ; solution: "正しい文字列を入力してください" } ; invalidRemindExpireTokenValue: { detail: "tokenのExpireをリマインドする時間の値が不正です" ; name: "invalidRemindExpireTokenValue" ; solution: "正しい時間を指定してください" } ; invalidRequestParameter: { detail: "リクエストの値が不正です" ; name: "invalidRequestParameter" ; solution: "正しい値を入力してください" } ; invalidTokenAppId: { detail: "tokenのappIdが正しくありません" ; name: "invalidTokenAppId" ; solution: "正しいappIdを含むTokenを使用してください" } ; invalidTrackKind: { detail: "Streamの種類とMediaStreamTrackの種類が一致しません" ; name: "invalidTrackKind" ; solution: "Streamの種類と同じMediaStreamTrackを利用してください" } ; localPersonNotJoinedChannel: { detail: "操作しようとしたPersonがChannelに居ないので、操作できません The person who tried to operate is not in the channel, so the operation is not possible" ; name: "localPersonNotJoinedChannel" ; solution: "Channelに居ないPersonを操作している可能性があるので確認してください Please check as you may be operating a person which is not in the channel" } ; maxSubscriberExceededError: { detail: "forwardingのmaxSubscribersの制限を超えています。maxSubscribersの値を超えてSubscribeすることはできません" ; name: "maxSubscribersExceededError" ; solution: "maxSubscribersの範囲内でご利用ください" } ; maxSubscribersMustNotBeZero: { detail: "maxSubscribersは1以上である必要があります" ; name: "maxSubscribersMustNotBeZero" ; solution: "正しい値を入力してください" } ; mediaDevicesNotFound: { detail: "navigator.mediaDevicesがみつかりません" ; name: "mediaDevicesNotFound" ; solution: "アプリケーションをhttps,localhost,127.0.0.1のいずれかの環境で動作させてください" } ; missingProperty: { detail: "" ; name: "missingProperty" ; solution: "" } ; netWorkError: { detail: "通信環境に問題があります" ; name: "netWorkError" ; solution: "ネットワーク接続状況を確認してください" } ; notAllowedConsumeError: { detail: "ForwardingからのConsume許可がありません" ; name: "notAllowedConsumeError" ; solution: "Forwardingしているmemberによる許可操作が必要です" } ; notFound: { detail: "参照しようとしていたものが見つかりません" ; name: "notFound" ; solution: "参照しようとしたものが存在するか確かめてください" } ; notImplemented: { detail: "対応していないRoomTypeです" ; name: "notImplemented" ; solution: "正しいRoomTypeを指定してください" } ; publicationNotExist: { detail: "channelに該当するPublicationが存在しません" ; name: "publicationNotExist" ; solution: "publicationIdが正しいか確かめてください" } ; publicationNotHasOrigin: { detail: "SfuRoomで操作するPublicationはOriginをもつ必要があります" ; name: "publicationNotHasOrigin" ; solution: "SfuRoomとP2PRoomを同一のIDで混在させていないか確かめてください" } ; quotaExceededError: { detail: "リソースの制限量を超えてリソースを利用することはできません" ; name: "quotaExceededError" ; solution: "リソース制限量の範囲内でご利用ください" } ; receiverNotFound: { detail: "SFUはRemoteMemberのSubscriptionを操作できません" ; name: "receiverNotFound" ; solution: "SFUでsubscriptionの操作をする際にはLocalPersonがSubscribeしているSubscriptionインスタンスを利用してください" } ; remotePublisherId: { detail: "publisherがremoteのPublicationをForwardingすることはできません" ; name: "remotePublisherId" ; solution: "PublicationがLocalでPublishされたものか確かめてください" } ; roomNotOpened: { detail: "RoomがOpenされていません" ; name: "roomNotOpened" ; solution: "Roomの状態を確かめてください" } ; rtcApiFatalError: { detail: "RtcAPIの回復不能なエラーです。サーバー側の問題の可能性があります" ; name: "rtcApiFatalError" ; solution: "インターネットへの接続が出来ているかを確かめてください" } ; sfuBotNotInChannel: { detail: "SfuBotがChannelに存在しません" ; name: "sfuBotNotInChannel" ; solution: "操作しようとしているSfuBotが正しいか確かめてください" } ; sfuRoomNotSupportDataStream: { detail: "SFURoomでDataStreamを使うことは出来ません" ; name: "sfuRoomNotSupportDataStream" ; solution: "ありません" } ; streamNotExistInPublication: { detail: "PublicationにStreamがありません。RemoteMemberのPublicationのStreamにはアクセスできません" ; name: "streamNotExistInPublication" ; solution: "参照しているPublicationが目的のものか確かめてください。" } ; streamNotExistInSubscription: { detail: "SubscriptionにStreamがありません。RemoteMemberのSubscriptionのStreamにはアクセスできません" ; name: "streamNotExistInSubscription" ; solution: "参照しているSubscriptionが目的のものか確かめてください。" } ; subscribeOtherMemberType: { detail: "RemoteMemberにSubscribe/Unsubscribeさせる場合、対象のMemberのTypeはPersonである必要があります" ; name: "subscribeOtherMemberType" ; solution: "対象のRemoteMemberが正しいか確認してください" } ; subscriptionNotExist: { detail: "channelに該当するSubscriptionが存在しません" ; name: "subscriptionNotExist" ; solution: "subscriptionIdが正しいか確かめてください" } ; timeout: { detail: "" ; name: "timeout" ; solution: "" } ; unknownMemberType: { detail: "対象のMemberのSubtypeのプラグインが登録されていません" ; name: "unknownMemberType" ; solution: "対象のMemberのSubtypeのプラグイン(SfuBotなど)をSkyWayContextに登録してください" } ; updateIceParamsFailed: { detail: "iceParamsの更新に失敗しました" ; name: "updateIceParamsFailed" ; solution: "ありません" } } = ...
Const log Level Typeslog Level Types: readonly [ "disable" , "error" , "warn" , "info" , "debug" ]
Const room Typesroom Types: readonly [ "sfu" , "p2p" ] = ...
Const token Errorstoken Errors: { invalidParameter: { detail: "failed to decode token" ; name: "invalidParameter" ; solution: "Use the correct token according to the specification" } }
Type declaration Readonly invalid Parameter: { detail: "failed to decode token" ; name: "invalidParameter" ; solution: "Use the correct token according to the specification" } Readonly detail: "failed to decode token" Readonly name: "invalidParameter" Readonly solution: "Use the correct token according to the specification"
アプリケーション自体に関する権限。現在は'read'固定