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

objectEnClientEventDriveNetworkConnect<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协议开源