Skip to content

Class WebClientAsync ​

Namespace: Tool.Sockets.WebHelper
Assembly: Tool.Net.dll

WebSocket连接对象

csharp
public sealed class WebClientAsync : NetworkConnect<WebSocket>, INetworkConnect<WebSocket>, INetworkConnect, INetworkCore, IDisposable

Inheritance ​

object ← EnClientEventDrive ← NetworkConnect<WebSocket> ← WebClientAsync

Implements ​

INetworkConnect<WebSocket>, INetworkConnect, INetworkCore, IDisposable

Inherited Members ​

NetworkConnect<WebSocket>.LocalPoint, NetworkConnect<WebSocket>.Connected, NetworkConnect<WebSocket>.Server, NetworkConnect<WebSocket>.Millisecond, NetworkConnect<WebSocket>.IsClose, NetworkConnect<WebSocket>.IsThreadPool, NetworkConnect<WebSocket>.BufferSize, NetworkConnect<WebSocket>.Close(), NetworkConnect<WebSocket>.ConnectAsync(string, int), NetworkConnect<WebSocket>.CreateSendBytes(int), NetworkConnect<WebSocket>.Dispose(), NetworkConnect<WebSocket>.OnComplete(in UserKey, EnClient), NetworkConnect<WebSocket>.Reconnection(), NetworkConnect<WebSocket>.SendAsync(SendBytes<WebSocket>), NetworkConnect<WebSocket>.SetCompleted(CompletedEvent<EnClient>), NetworkConnect<WebSocket>.SetReceived(ReceiveEvent<WebSocket>), EnClientEventDrive.OnInterceptor(EnClient, bool), EnClientEventDrive.OnIsQueue(EnClient, bool), EnClientEventDrive.IsEvent(EnClient), EnClientEventDrive.IsQueue(EnClient), EnClientEventDrive.OpenAllEvent(), EnClientEventDrive.OpenAllQueue(), EnClientEventDrive.CloseAllEvent(), EnClientEventDrive.CloseAllQueue(), object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object?, object?), object.ToString()

Extension Methods ​

ObjectExtension.Add<T>(object, object, object), ObjectExtension.CopyEntity(object, object, params string[]), ObjectExtension.EntityToJson(object), ObjectExtension.EntityToJson(object, bool), ObjectExtension.EntityToJson(object, bool, string), DictionaryExtension.GetDictionary(object), TypeExtension.GetFieldKey(object, string, out bool), TypeExtension.GetFieldKey<T>(object, string, out bool), TypeExtension.GetFieldKey(object, Type, string, out bool), ObjectExtension.GetIntPtr(object), ObjectExtension.GetIntPtrInt(object), TypeExtension.GetPropertieFind(object, string, bool), TypeExtension.GetProperties(object), TypeExtension.GetPropertyKey(object, string, out bool), TypeExtension.GetPropertyKey<T>(object, string, out bool), TypeExtension.GetPropertyKey(object, Type, string, out bool), TypeExtension.GetValue(object, PropertyDescriptor), TypeExtension.GetValue(object, string, bool), TypeExtension.GetValue(object, string), ObjectExtension.Read<T>(object, object, int, int), ObjectExtension.Read<T>(object, int, object, int, int), DictionaryExtension.SetDictionary(object, IDictionary<string, object>), TypeExtension.SetFieldKey(object, string, object), TypeExtension.SetFieldKey<T>(object, string, object), TypeExtension.SetFieldKey(object, Type, string, object), TypeExtension.SetPropertyKey(object, string, object), TypeExtension.SetPropertyKey<T>(object, string, object), TypeExtension.SetPropertyKey(object, Type, string, object), TypeExtension.SetValue(object, PropertyDescriptor, object), TypeExtension.SetValue(object, string, object, bool), TypeExtension.SetValue(object, string, object), ObjectExtension.ToBase64String(object), ObjectExtension.ToBytes(object), ObjectExtension.ToBytes(object, out Type), DictionaryExtension.ToDictionary(object), DictionaryExtension.ToDictionary<T>(object), DictionaryExtension.ToIDictionary(object), DictionaryExtension.ToIDictionary<T>(object), ObjectExtension.ToJson(object), ObjectExtension.ToJson(object, JsonSerializerOptions), ObjectExtension.ToJsonWeb(object), ObjectExtension.ToJsonWeb(object, Action<JsonSerializerOptions>), ObjectExtension.ToTryVar<T>(object, T), ObjectExtension.ToVar<T>(object), ObjectExtension.ToVar(object, Type, bool), ObjectExtension.ToVar(object, string), ObjectExtension.ToXml(object)

Constructors ​

WebClientAsync() ​

创建一个 客户端类

csharp
public WebClientAsync()

WebClientAsync(NetBufferSize) ​

创建一个 客户端类,确认模式和设置流大小

csharp
public WebClientAsync(NetBufferSize bufferSize)

Parameters ​

bufferSize NetBufferSize

包大小枚举

WebClientAsync(NetBufferSize, bool) ​

创建一个 客户端类,确认模式和设置流大小

csharp
public WebClientAsync(NetBufferSize bufferSize, bool IsReconnect)

Parameters ​

bufferSize NetBufferSize

包大小枚举(警告:请务必保证服务端的大小和客户端一致)

IsReconnect bool

是否在与服务器断开后主动重连?

Properties ​

Connected ​

获取当前是否已连接到远程主机。

csharp
public override bool Connected { get; }

Property Value ​

bool

IsClose ​

标识客户端连接是否关闭

csharp
public override bool IsClose { get; }

Property Value ​

bool

IsReconnect ​

是否在与服务器断开后主动重连?

csharp
public bool IsReconnect { get; }

Property Value ​

bool

IsSSL ​

获取指示是否使用安全套接字层 (SSL) 保护 WebSocket 连接的值。

csharp
public bool IsSSL { get; init; }

Property Value ​

bool

Remarks ​

true 如果使用 SSL; 保护 WebSocket 连接,否则为false。

Keep ​

获取当前心跳信息

csharp
public KeepAlive Keep { get; }

Property Value ​

KeepAlive

LocalPoint ​

当前设备的连接信息

csharp
public override Ipv4Port LocalPoint { get; }

Property Value ​

Ipv4Port

Millisecond ​

监听控制毫秒

csharp
public override int Millisecond { get; set; }

Property Value ​

int

Server ​

服务器创建时的信息

csharp
public override UserKey Server { get; }

Property Value ​

UserKey

Methods ​

AddKeepAlive(byte) ​

添加持久化消息(心跳),防止特殊情况下的断开连接

csharp
public void AddKeepAlive(byte TimeInterval)

Parameters ​

TimeInterval byte

Close() ​

TCP关闭

csharp
public override void Close()

ConnectAsync(int) ​

开始异步连接

csharp
public Task ConnectAsync(int port)

Parameters ​

port int

端口号

Returns ​

Task

ConnectAsync(string, int) ​

开始异步连接

csharp
public override Task ConnectAsync(string ip, int port)

Parameters ​

ip string

可以使用“*”

port int

端口号

Returns ​

Task

ConnectAsync(string) ​

开始异步连接

csharp
public Task ConnectAsync(string uriPrefix)

Parameters ​

uriPrefix string

高级定义法,例如:0.0.0.0:80/tcp,该格式适用

Returns ​

Task

CreateSendBytes(int) ​

创建数据包对象

csharp
public override SendBytes<WebSocket> CreateSendBytes(int length = 0)

Parameters ​

length int

数据包大小

Returns ​

SendBytes<WebSocket>

Dispose() ​

回收UDP相关资源

csharp
public override void Dispose()

OnComplete(in UserKey, EnClient) ​

事件方法

csharp
public override ValueTask<IGetQueOnEnum> OnComplete(in UserKey key, EnClient enAction)

Parameters ​

key UserKey

指定发送对象

enAction EnClient

消息类型

Returns ​

ValueTask<IGetQueOnEnum>

Reconnection() ​

重连,返回是否重连,如果没有断开是不会重连的

csharp
public override Task<bool> Reconnection()

Returns ​

Task<bool>

SendAsync(string) ​

开始异步发送数据

csharp
public ValueTask<bool> SendAsync(string msg)

Parameters ​

msg string

要发送的内容

Returns ​

ValueTask<bool>

SendAsync(Memory<byte>) ​

开始异步发送数据

csharp
public ValueTask<bool> SendAsync(Memory<byte> listData)

Parameters ​

listData Memory<byte>

要发送的内容

Returns ​

ValueTask<bool>

SendAsync(SendBytes<WebSocket>) ​

开始异步发送数据

csharp
public override ValueTask SendAsync(SendBytes<WebSocket> sendBytes)

Parameters ​

sendBytes SendBytes<WebSocket>

数据包对象

Returns ​

ValueTask

SetCompleted(CompletedEvent<EnClient>) ​

连接、发送、关闭事件

csharp
public override void SetCompleted(CompletedEvent<EnClient> Completed)

Parameters ​

Completed CompletedEvent<EnClient>

SetInitWebContext(Action<ClientWebSocketOptions>) ​

在连接发送前,回调可设置的参数

csharp
public void SetInitWebContext(Action<ClientWebSocketOptions> initWebOptions)

Parameters ​

initWebOptions Action<ClientWebSocketOptions>

SetReceived(ReceiveEvent<WebSocket>) ​

接收到数据事件

csharp
public override void SetReceived(ReceiveEvent<WebSocket> Received)

Parameters ​

Received ReceiveEvent<WebSocket>

基于Apache-2.0协议开源