reckfellENGINE

WebSocketPeer

Соединение WebSocket с ручным опросом и границами сообщений.

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

ConnectToUrl запускает handshake, AcceptStream принимает подходящий TCP/TLS-поток. Продолжайте Poll и проверяйте GetReadyState: Error.Ok запуска не означает Open. Читайте пакеты через GetPacket/GetPacketError и различайте текст/байты через WasStringPacket.

Close начинает завершение; опрос продолжают до Closed или срока ожидания. Raw WebSocket не синхронизирует Entity и не является автоматически SceneMultiplayer RPC. Для WSS нужны проверяющие TLS-параметры и подходящий сервер.

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

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

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

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

Свойства6

HandshakeHeadersСвойство
# HandshakeHeaders
C#
public string[] HandshakeHeaders { get; set; }

Дополнительные заголовки HTTP будут отправлены во время рукопожатия WebSocket. Примечание: Не поддерживается в интернет-экспорте из-за ограничений браузера.

HeartbeatIntervalСвойство
# HeartbeatInterval
C#
public double HeartbeatInterval { get; set; }

Интервал (в секундах), с которым одноранговый узел будет автоматически отправлять кадры управления WebSocket "ping". Если установлено значение 0, кадры управления "ping" отправляться не будут. Примечание: Не влияет на экспорт веб-контента из-за ограничений браузера.

InboundBufferSizeСвойство
# InboundBufferSize
C#
public int InboundBufferSize { get; set; }

Размер входного буфера в байтах (примерно максимальный объем памяти, который будет выделен для входящих пакетов).

MaxQueuedPacketsСвойство
# MaxQueuedPackets
C#
public int MaxQueuedPackets { get; set; }

Максимальное количество пакетов, которые будут разрешены в очередях (как входящих, так и исходящих).

OutboundBufferSizeСвойство
# OutboundBufferSize
C#
public int OutboundBufferSize { get; set; }

Размер входного буфера в байтах (примерно максимальный объем памяти, который будет выделен для исходящих пакетов).

SupportedProtocolsСвойство
# SupportedProtocols
C#
public string[] SupportedProtocols { get; set; }

Список предлагаемых/принимаемых подпротоколов WebSocket. Имя подпротокола не создаёт формат игровых сообщений автоматически.

Методы31

AcceptStreamError
# AcceptStream
C#
public Error AcceptStream(StreamPeer stream);

Начинает серверный WebSocket handshake поверх подходящего уже подключённого потока. Для WSS сначала установите TLS; обычный TCP-поток не включает шифрование.

Параметры
ИмяТипПо умолчанию
streamStreamPeer—
Возвращает Error
Closevoid
# Close
C#
public void Close(int code = 1000, string reason = "");

Начинает закрытие с кодом и причиной. Это не замена последующего Poll до Closed; удаление владельца может прервать handshake закрытия.

Параметры
ИмяТипПо умолчанию
codeint1000
reasonstring""
ConnectToUrlError
# ConnectToUrl
C#
public Error ConnectToUrl(string url, TlsOptions tlsClientOptions = null);

Начинает WS/WSS-подключение. После Error.Ok продолжайте Poll и ждите Open; для WSS используйте проверяющие TLS-параметры.

Параметры
ИмяТипПо умолчанию
urlstring—
tlsClientOptionsTlsOptionsnull
Возвращает Error
GetCloseCodeint
# GetCloseCode
C#
public int GetCloseCode();

Код закрытия, когда он получен. Обрыв или неудачный handshake не обязаны иметь нормальный код 1000; интерпретируйте вместе с состоянием и диагностикой.

Возвращает int
GetCloseReasonstring
# GetCloseReason
C#
public string GetCloseReason();

Возвращает полученную строку причины статуса закрытия фрейма WebSocket. Вызывайте этот метод только тогда, когда WebSocketPeer.GetReadyState возвращает WebSocketPeer.State.Closed.

Возвращает string
GetConnectedHoststring
# GetConnectedHost
C#
public string GetConnectedHost();

Возвращает IP-адрес подключенного однорангового узла. Примечание: Недоступно в веб-экспорте.

Возвращает string
GetConnectedPortushort
# GetConnectedPort
C#
public ushort GetConnectedPort();

Возвращает удаленный порт подключенного однорангового узла. Примечание: Недоступно в веб-экспорте.

Возвращает ushort
GetCurrentOutboundBufferedAmountint
# GetCurrentOutboundBufferedAmount
C#
public int GetCurrentOutboundBufferedAmount();

Возвращает текущий объем данных в исходящем буфере веб-сокета. Примечание: Веб-экспорт использует WebSocket.bufferedAmount, тогда как другие платформы используют внутренний буфер.

Возвращает int
GetHandshakeHeadersstring[]
# GetHandshakeHeaders
C#
public string[] GetHandshakeHeaders();
Возвращает string[]
GetHeartbeatIntervaldouble
# GetHeartbeatInterval
C#
public double GetHeartbeatInterval();
Возвращает double
GetInboundBufferSizeint
# GetInboundBufferSize
C#
public int GetInboundBufferSize();
Возвращает int
GetMaxQueuedPacketsint
# GetMaxQueuedPackets
C#
public int GetMaxQueuedPackets();
Возвращает int
GetOutboundBufferSizeint
# GetOutboundBufferSize
C#
public int GetOutboundBufferSize();
Возвращает int
GetReadyStateWebSocketPeer.State
# GetReadyState
C#
public WebSocketPeer.State GetReadyState();

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

Возвращает WebSocketPeer.State
GetRequestedUrlstring
# GetRequestedUrl
C#
public string GetRequestedUrl();

Возвращает URL, запрошенный этим пиром. URL выводится из url, переданного в WebSocketPeer.ConnectToUrl, или из заголовков HTTP при работе в качестве сервера (т. е. при использовании WebSocketPeer.AcceptStream).

Возвращает string
GetSelectedProtocolstring
# GetSelectedProtocol
C#
public string GetSelectedProtocol();

Возвращает выбранный подпротокол WebSocket для данного соединения или пустую строку, если подпротокол еще не выбран.

Возвращает string
GetSupportedProtocolsstring[]
# GetSupportedProtocols
C#
public string[] GetSupportedProtocols();
Возвращает string[]
Pollvoid
# Poll
C#
public void Poll();

Продвигает handshake, входящие данные и закрытие. Продолжайте опрос в Closing, пока не получен Closed или не сработал ваш срок ожидания.

Send2 перегрузки
# Send · 1/2
C#
public Error Send(byte[] message, WebSocketPeer.WriteMode writeMode = WebSocketPeer.WriteMode.Binary);

Отправляет байты с выбранным WriteMode. Двоичный формат и текст UTF-8 — разные типы сообщения; формат приложения согласуется отдельно.

Параметры
ИмяТипПо умолчанию
messagebyte[]—
writeModeWebSocketPeer.WriteModeWebSocketPeer.WriteMode.Binary
Возвращает Error
# Send · 2/2
C#
public Error Send(ReadOnlySpan<byte> message, WebSocketPeer.WriteMode writeMode);

Отправляет байты с выбранным WriteMode. Двоичный формат и текст UTF-8 — разные типы сообщения; формат приложения согласуется отдельно.

Параметры
ИмяТипПо умолчанию
messageReadOnlySpan<byte>—
writeModeWebSocketPeer.WriteMode—
Возвращает Error
SendTextError
# SendText
C#
public Error SendText(string message);

Отправляет текстовое сообщение UTF-8 в открытом соединении. Проверяйте Error и прикладной предел в байтах; успешная отправка не подтверждает выполнение действия сервером.

Параметры
ИмяТипПо умолчанию
messagestring—
Возвращает Error
SetHandshakeHeaders2 перегрузки
# SetHandshakeHeaders · 1/2
C#
public void SetHandshakeHeaders(ReadOnlySpan<string> protocols);
Параметры
ИмяТипПо умолчанию
protocolsReadOnlySpan<string>—
# SetHandshakeHeaders · 2/2
C#
public void SetHandshakeHeaders(string[] protocols);
Параметры
ИмяТипПо умолчанию
protocolsstring[]—
SetHeartbeatIntervalvoid
# SetHeartbeatInterval
C#
public void SetHeartbeatInterval(double interval);
Параметры
ИмяТипПо умолчанию
intervaldouble—
SetInboundBufferSizevoid
# SetInboundBufferSize
C#
public void SetInboundBufferSize(int bufferSize);
Параметры
ИмяТипПо умолчанию
bufferSizeint—
SetMaxQueuedPacketsvoid
# SetMaxQueuedPackets
C#
public void SetMaxQueuedPackets(int bufferSize);
Параметры
ИмяТипПо умолчанию
bufferSizeint—
SetNoDelayvoid
# SetNoDelay
C#
public void SetNoDelay(bool enabled);

Отключить алгоритм Нейгла на базовом сокете TCP (по умолчанию). Для получения дополнительной информации см. StreamPeerTcp.SetNoDelay. Примечание: Недоступно в веб-экспорте.

Параметры
ИмяТипПо умолчанию
enabledbool—
SetOutboundBufferSizevoid
# SetOutboundBufferSize
C#
public void SetOutboundBufferSize(int bufferSize);
Параметры
ИмяТипПо умолчанию
bufferSizeint—
SetSupportedProtocols2 перегрузки
# SetSupportedProtocols · 1/2
C#
public void SetSupportedProtocols(ReadOnlySpan<string> protocols);
Параметры
ИмяТипПо умолчанию
protocolsReadOnlySpan<string>—
# SetSupportedProtocols · 2/2
C#
public void SetSupportedProtocols(string[] protocols);
Параметры
ИмяТипПо умолчанию
protocolsstring[]—
WasStringPacketbool
# WasStringPacket
C#
public bool WasStringPacket();

Отражает тип последнего полученного пакета. Проверяйте после GetPacket; не используйте как характеристику всех будущих сообщений соединения.

Возвращает bool

WebSocketPeer.State

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

Соединение закрыто или не может быть открыто.

Closing = 2

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

Connecting = 0

Сокет создан. Соединение еще не открыто.

Open = 1

Соединение открыто и готово к коммуникации.

Что-то закрывается

WebSocketPeer.WriteMode

ЗначениеОписание
Binary = 1

Указывает, что сообщения WebSockets должны передаваться как двоичные данные (допускается любая комбинация байтов).

Text = 0

Указывает, что сообщения WebSockets должны передаваться в виде текстовой полезной нагрузки (разрешена только допустимая кодировка UTF-8).

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

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

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

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