reckfellENGINE

WebRtcPeerConnection

Интерфейс WebRTC, которому нужна реализация целевой платформы.

На этой странице
class WebRtcPeerConnectionReckfellSharpНаследует RefCounted

Управляет SDP/ICE и data channels через выбранную реализацию. В проверенном чистом Windows C#-проекте без внешнего backend выбирается пустой WebRTCPeerConnectionExtension. Наличие класса и даже значение Error.Ok из пустого виртуального метода не доказывают рабочее соединение.

Проверьте реализацию, сообщения диагностики, signaling, создание/открытие канала и завершение на целевой платформе. CreateOffer не создаёт signaling-сервис; SDP/ICE передаются между нужными участниками отдельно. Connected WebRTC в приведённом Windows-стенде не проверен.

Практическое руководство.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

WebRtcPeerConnectionКонструктор
# WebRtcPeerConnection
C#
public WebRtcPeerConnection();

Методы12

AddIceCandidateError
# AddIceCandidate
C#
public Error AddIceCandidate(string media, int index, string name);

Передаёт удалённый ICE candidate реализации. Свяжите его с правильной signaling-сессией и готовностью удалённого описания.

Параметры
ИмяТипПо умолчанию
mediastring—
indexint—
namestring—
Возвращает Error
Closevoid
# Close
C#
public void Close();

Закройте одноранговое соединение и все каналы данных, связанные с ним. Примечание: Вы не сможете повторно использовать этот объект для нового соединения, если не вызовете WebRtcPeerConnection.Initialize.

CreateDataChannelWebRtcDataChannel
# CreateDataChannel
C#
public WebRtcDataChannel CreateDataChannel(string label, Reckfell.Collections.Dictionary options = null);

Создаёт канал через реализацию. На инициаторе создавайте нужный канал до offer; доступность объекта не равна открытому каналу для передачи.

Параметры
ИмяТипПо умолчанию
labelstring—
optionsReckfell.Collections.Dictionarynull
Возвращает WebRtcDataChannel
CreateOfferError
# CreateOffer
C#
public Error CreateOffer();

Просит реализацию создать SDP offer; результат приходит через SessionDescriptionCreated. Signaling-сервис и передачу данных другому участнику задаёт приложение.

Возвращает Error
GetConnectionStateWebRtcPeerConnection.ConnectionState
# GetConnectionState
C#
public WebRtcPeerConnection.ConnectionState GetConnectionState();

Возвращает состояние соединения.

Возвращает WebRtcPeerConnection.ConnectionState
GetGatheringStateWebRtcPeerConnection.GatheringState
# GetGatheringState
C#
public WebRtcPeerConnection.GatheringState GetGatheringState();

Возвращает ICE WebRtcPeerConnection.GatheringState соединения. Это позволяет определить, например, когда сбор кандидатов ICE завершен.

Возвращает WebRtcPeerConnection.GatheringState
GetSignalingStateWebRtcPeerConnection.SignalingState
# GetSignalingState
C#
public WebRtcPeerConnection.SignalingState GetSignalingState();

Возвращает состояние сигнализации на локальном конце соединения при подключении или повторном подключении к другому одноранговому узлу.

Возвращает WebRtcPeerConnection.SignalingState
InitializeError
# Initialize
C#
public Error Initialize(Reckfell.Collections.Dictionary configuration = null);

Передаёт конфигурацию выбранной реализации. На пустом Extension нулевой результат не доказывает реализацию: проверяйте required-virtual диагностику и реальный обмен.

Параметры
ИмяТипПо умолчанию
configurationReckfell.Collections.Dictionarynull
Возвращает Error
PollError
# Poll
C#
public Error Poll();

Чаще вызывайте этот метод (например, в Entity._Process или Entity._PhysicsProcess) для правильного приема сигналов.

Возвращает Error
SetDefaultExtensionvoid
# SetDefaultExtension
C#
public static void SetDefaultExtension(StringName extensionClass);

Выбирает зарегистрированную реализацию, наследующую нужный Extension-класс. Не скачивает библиотеку и не подтверждает её совместимость/работоспособность.

Параметры
ИмяТипПо умолчанию
extensionClassStringName—
SetLocalDescriptionError
# SetLocalDescription
C#
public Error SetLocalDescription(string type, string sdp);

Устанавливает описание SDP локального однорангового узла. Это должно быть вызвано в ответ на WebRtcPeerConnection.SessionDescriptionCreated. После вызова этой функции одноранговый узел начнет выдавать WebRtcPeerConnection.IceCandidateCreated (если только не будет возвращено Error, отличное от OK).

Параметры
ИмяТипПо умолчанию
typestring—
sdpstring—
Возвращает Error
SetRemoteDescriptionError
# SetRemoteDescription
C#
public Error SetRemoteDescription(string type, string sdp);

Устанавливает описание SDP удаленного пира. Это должно быть вызвано со значениями, сгенерированными удаленным пиром и полученными через сервер сигнализации. Если type — "offer", то пир выдаст WebRtcPeerConnection.SessionDescriptionCreated с соответствующим ответом. Если type — "answer", то пир начнет выдавать WebRtcPeerConnection.IceCandidateCreated.

Параметры
ИмяТипПо умолчанию
typestring—
sdpstring—
Возвращает Error

Сигналы и события3

DataChannelReceivedСобытие
# DataChannelReceived
C#
public event WebRtcPeerConnection.DataChannelReceivedEventHandler DataChannelReceived;

Выдается при получении нового внутриполосного канала, т. е. когда канал был создан с negotiated: false (по умолчанию). Объект будет экземпляром WebRtcDataChannel. Вы должны сохранить ссылку на него, иначе он будет автоматически закрыт. См. WebRtcPeerConnection.CreateDataChannel.

Параметры обработчика
ИмяТипПо умолчанию
channelWebRtcDataChannel—
IceCandidateCreatedСобытие
# IceCandidateCreated
C#
public event WebRtcPeerConnection.IceCandidateCreatedEventHandler IceCandidateCreated;

Выдается при создании нового кандидата ICE. Три параметра предназначены для передачи удаленному пиру через сигнальный сервер.

Параметры обработчика
ИмяТипПо умолчанию
mediastring—
indexlong—
namestring—
SessionDescriptionCreatedСобытие
# SessionDescriptionCreated
C#
public event WebRtcPeerConnection.SessionDescriptionCreatedEventHandler SessionDescriptionCreated;

Выдается после успешного вызова WebRtcPeerConnection.CreateOffer или WebRtcPeerConnection.SetRemoteDescription (когда он генерирует ответ). Параметры должны быть переданы WebRtcPeerConnection.SetLocalDescription на этом объекте и отправлены удаленному пиру через сервер сигнализации.

Параметры обработчика
ИмяТипПо умолчанию
typestring—
sdpstring—

WebRtcPeerConnection.ConnectionState

ЗначениеОписание
Closed = 5

Соединение с одноранговым узлом закрыто (например, после вызова WebRtcPeerConnection.Close).

Connected = 2

Узел подключен, все транспорты ICE подключены.

Connecting = 1

Узел подключается, ICE выполняется, ни один из транспортов не дал сбоев.

Disconnected = 3

По крайней мере один транспорт ICE отключен.

Failed = 4

Один или несколько транспортов ICE вышли из строя.

New = 0

Новое соединение , каналы передачи данных и предложение могут быть созданы в этом состоянии.

WebRtcPeerConnection.GatheringState

ЗначениеОписание
Complete = 2

Агент ICE завершил сбор кандидатов. Если произойдет что-то, требующее сбора новых кандидатов, например, добавление нового интерфейса или добавление нового сервера ICE, состояние вернется к сбору, чтобы собрать этих кандидатов.

Gathering = 1

Агент ICE находится в процессе сбора кандидатов на подключение.

New = 0

Соединение между одноранговыми узлами было только что создано и еще не выполняло никаких сетевых операций.

WebRtcPeerConnection.SignalingState

ЗначениеОписание
Closed = 5

:: WebRtcPeerConnection был закрыт.

HaveLocalOffer = 1

Локальный узел вызвал WebRtcPeerConnection.SetLocalDescription, передав SDP, представляющий предложение (обычно созданное путем вызова WebRtcPeerConnection.CreateOffer), и предложение было успешно применено.

HaveLocalPranswer = 3

Предложение, отправленное удаленным пиром, было применено, и ответ был создан и применен путем вызова WebRtcPeerConnection.SetLocalDescription. Этот предварительный ответ описывает поддерживаемые форматы медиа и т. д., но может не включать полный набор кандидатов ICE. Дополнительные кандидаты будут доставлены отдельно позже.

HaveRemoteOffer = 2

Удаленный узел создал предложение и использовал сервер сигнализации для его доставки локальному узлу, который установил предложение в качестве удаленного описания, вызвав WebRtcPeerConnection.SetRemoteDescription.

HaveRemotePranswer = 4

Предварительный ответ был получен и успешно применен в ответ на предложение, ранее отправленное и установленное путем вызова WebRtcPeerConnection.SetLocalDescription.

Stable = 0

Не происходит никакого текущего обмена предложением и ответом. Это может означать, что WebRtcPeerConnection является новым (WebRtcPeerConnection.ConnectionState.New) или что переговоры завершены и соединение установлено (WebRtcPeerConnection.ConnectionState.Connected).

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.