Class WebClientAsync
Namespace: Tool.Sockets.WebHelper
Assembly: Tool.Net.dll
WebSocket连接对象
public sealed class WebClientAsync : NetworkConnect<WebSocket>, INetworkConnect<WebSocket>, INetworkConnect, INetworkCore, IDisposableInheritance
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()
创建一个 客户端类
public WebClientAsync()WebClientAsync(NetBufferSize)
创建一个 客户端类,确认模式和设置流大小
public WebClientAsync(NetBufferSize bufferSize)Parameters
bufferSize NetBufferSize
包大小枚举
WebClientAsync(NetBufferSize, bool)
创建一个 客户端类,确认模式和设置流大小
public WebClientAsync(NetBufferSize bufferSize, bool IsReconnect)Parameters
bufferSize NetBufferSize
包大小枚举(警告:请务必保证服务端的大小和客户端一致)
IsReconnect bool
是否在与服务器断开后主动重连?
Properties
Connected
获取当前是否已连接到远程主机。
public override bool Connected { get; }Property Value
IsClose
标识客户端连接是否关闭
public override bool IsClose { get; }Property Value
IsReconnect
是否在与服务器断开后主动重连?
public bool IsReconnect { get; }Property Value
IsSSL
获取指示是否使用安全套接字层 (SSL) 保护 WebSocket 连接的值。
public bool IsSSL { get; init; }Property Value
Remarks
true 如果使用 SSL; 保护 WebSocket 连接,否则为false。
Keep
获取当前心跳信息
public KeepAlive Keep { get; }Property Value
LocalPoint
当前设备的连接信息
public override Ipv4Port LocalPoint { get; }Property Value
Millisecond
监听控制毫秒
public override int Millisecond { get; set; }Property Value
Server
服务器创建时的信息
public override UserKey Server { get; }Property Value
Methods
AddKeepAlive(byte)
添加持久化消息(心跳),防止特殊情况下的断开连接
public void AddKeepAlive(byte TimeInterval)Parameters
TimeInterval byte
Close()
TCP关闭
public override void Close()ConnectAsync(int)
开始异步连接
public Task ConnectAsync(int port)Parameters
port int
端口号
Returns
ConnectAsync(string, int)
开始异步连接
public override Task ConnectAsync(string ip, int port)Parameters
ip string
可以使用“*”
port int
端口号
Returns
ConnectAsync(string)
开始异步连接
public Task ConnectAsync(string uriPrefix)Parameters
uriPrefix string
高级定义法,例如:0.0.0.0:80/tcp,该格式适用
Returns
CreateSendBytes(int)
创建数据包对象
public override SendBytes<WebSocket> CreateSendBytes(int length = 0)Parameters
length int
数据包大小
Returns
Dispose()
回收UDP相关资源
public override void Dispose()OnComplete(in UserKey, EnClient)
事件方法
public override ValueTask<IGetQueOnEnum> OnComplete(in UserKey key, EnClient enAction)Parameters
key UserKey
指定发送对象
enAction EnClient
消息类型
Returns
Reconnection()
重连,返回是否重连,如果没有断开是不会重连的
public override Task<bool> Reconnection()Returns
SendAsync(string)
开始异步发送数据
public ValueTask<bool> SendAsync(string msg)Parameters
msg string
要发送的内容
Returns
SendAsync(Memory<byte>)
开始异步发送数据
public ValueTask<bool> SendAsync(Memory<byte> listData)Parameters
要发送的内容
Returns
SendAsync(SendBytes<WebSocket>)
开始异步发送数据
public override ValueTask SendAsync(SendBytes<WebSocket> sendBytes)Parameters
sendBytes SendBytes<WebSocket>
数据包对象
Returns
SetCompleted(CompletedEvent<EnClient>)
连接、发送、关闭事件
public override void SetCompleted(CompletedEvent<EnClient> Completed)Parameters
Completed CompletedEvent<EnClient>
SetInitWebContext(Action<ClientWebSocketOptions>)
在连接发送前,回调可设置的参数
public void SetInitWebContext(Action<ClientWebSocketOptions> initWebOptions)Parameters
initWebOptions Action<ClientWebSocketOptions>
SetReceived(ReceiveEvent<WebSocket>)
接收到数据事件
public override void SetReceived(ReceiveEvent<WebSocket> Received)Parameters
Received ReceiveEvent<WebSocket>