一款简单易用的基础网络通讯组件库。

WSDataFrame 类

WebSocket数据帧

Definition

命名空间: TouchSocket.Http.WebSockets
程序集: TouchSocket.Http (在 TouchSocket.Http.dll 中) 版本:3.0.0+ccaf96084d09f972257496d1dd63b8ba3c1e44f0
C#
public class WSDataFrame : DisposableObject, 
	IRequestInfo, IRequestInfoBuilder, IByteBlockBuilder, IBigUnfixedHeaderRequestInfo
Inheritance
Object    DisposableObject    WSDataFrame
Implements
IBigUnfixedHeaderRequestInfo, IByteBlockBuilder, IRequestInfo, IRequestInfoBuilder

构造函数

WSDataFrame初始化 WSDataFrame 类的一个新实例

属性

DisposedValue 标识该对象是否已被释放
(继承自 DisposableObject。)
FIN 是否为最后数据帧。
IsBinary 是否是二进制数据类型
IsClose 是否是关闭请求
IsPing 是否是Ping
IsPong 是否是Pong
IsText 是否是文本类型
Mask 计算掩码
MaskingKey 掩码值
MaxLength 构建数据时,指示内存池的申请长度。

建议:该值可以尽可能的设置大一些,这样可以避免内存池扩容。

Opcode 数据类型
PayloadData 有效数据
PayloadLength 有效载荷数据长度
RSV1 标识RSV-1。
RSV2 标识RSV-2。
RSV3 标识RSV-3。

方法

BuildTByteBlock 构建对象到ByteBlock
Dispose 释放资源。内部已经处理了SuppressFinalize(Object)
(继承自 DisposableObject。)
Dispose(Boolean) 处置资源
(重写 DisposableObjectDispose(Boolean))
EqualsDetermines whether the specified object is equal to the current object.
(继承自 Object。)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(继承自 Object。)
GetHashCodeServes as the default hash function.
(继承自 Object。)
GetTypeGets the Type of the current instance.
(继承自 Object。)
MemberwiseCloneCreates a shallow copy of the current Object.
(继承自 Object。)
SetMaskString 设置Mask。
ThrowIfDisposed 判断当前对象是否已经被释放。 如果已经被释放,则抛出ObjectDisposedException异常。
(继承自 DisposableObject。)
ToStringReturns a string that represents the current object.
(继承自 Object。)

扩展方法

AppendBinary 将二进制数据追加到WSDataFrame对象的PayloadData属性中。
(由 WebSocketDataFrameExtension 定义。)
AppendText 将文本数据追加到WSDataFrame对象的PayloadData中。
(由 WebSocketDataFrameExtension 定义。)
Build 扩展方法,用于构建给定的字节块。 该方法通过引用传递字节块,以利用ref参数提高性能,避免不必要的复制。
(由 ByteBlockBuilderExtension 定义。)
BuildAsBytes 将对象构建到字节数组
(由 DataHandlingAdapterExtension 定义。)
BuildRequestTByteBlock 构建请求数据(含Make)
(由 WebSocketDataFrameExtension 定义。)
BuildRequestToBytes 构建请求数据(含Make)
(由 WebSocketDataFrameExtension 定义。)
BuildResponseTByteBlock 构建响应数据(无Make)
(由 WebSocketDataFrameExtension 定义。)
BuildResponseToBytes 构建响应数据(无Make)
(由 WebSocketDataFrameExtension 定义。)
Map
(由 Mapper 定义。)
Map
(由 Mapper 定义。)
MapTTarget
(由 Mapper 定义。)
ToJsonString 转换为Json
(由 SerializeConvert 定义。)
ToText 当数据类型为Text时,将数据帧转换为文本消息。
(由 WebSocketDataFrameExtension 定义。)

显式接口实现

IBigUnfixedHeaderRequestInfoBodyLength 数据体长度
IBigUnfixedHeaderRequestInfoHeaderLength 协议头长度
IBigUnfixedHeaderRequestInfoOnAppendBody 当收到数据,由框架封送数据。

您需要将有效数据自行保存。该方法可能会多次调用。

IBigUnfixedHeaderRequestInfoOnFinished 当完成数据接收时调用。

当返回False时,将不会把该对象向Received传递。

IBigUnfixedHeaderRequestInfoOnParsingHeaderTByteBlock 当收到数据,由框架封送数据,您需要在此函数中,解析自己的数据包头。

如果满足包头的解析,请返回True,并且递增整个包头的长度到Position,然后赋值BodyLength

如果返回false,意味着缓存剩余数据,此时如果仅仅是因为长度不足,则不必修改其他。

但是如果是因为数据错误,则需要修改Position到正确位置,如果都不正确,则设置Position等于Length

参见