SocketD 接口字典
Js 原码是基于模块进行开发的。所以 SocketD 集成了关键对象的创建(就不需要再导入模块了)。
- SocketD
接口 | 描述 |
---|---|
SocketD.version() | 框架版本号。(各语言和平台统一) |
SocketD.protocolVersion() | 协议版本号。(一般不会变) |
SocketD.createClient(serverUrl:string) | 创建客户端。如果不支持协议,会异常 |
SocketD.createClientOrNull(serverUrl:string) | 创建客户端。如果不支持协议,返回null |
SocketD.createClusterClient(serverUrls: string[] | string) | 创建集群客户端 |
SocketD.newEntity(data?: String | File | Blob | ArrayBuffer) | 创建实体 |
SocketD.newSimpleListener() | 创建简单临听器 |
SocketD.newEventListener() | 创建事件监听器 |
SocketD.newPathListener() | 创建路径监听器(一般用于服务端) |
SocketD.newPipelineListener() | 创建管道监听器 |
SocketD.EntityMetas | 常用元信息字典 |
- SocketD.EntityMetas 常用元信息字典
{
/**
* 框架版本号
*/
META_SOCKETD_VERSION: "SocketD",
/**
* 数据长度
*/
META_DATA_LENGTH: "Data-Length",
/**
* 数据类型
*/
META_DATA_TYPE: "Data-Type",
/**
* 数据分片索引
*/
META_DATA_FRAGMENT_IDX: "Data-Fragment-Idx",
/**
* 数据分片总数
*/
META_DATA_FRAGMENT_TOTAL: "Data-Fragment-Total",
/**
* 数据描述之文件名
*/
META_DATA_DISPOSITION_FILENAME: "Data-Disposition-Filename",
/**
* 数据范围开始(相当于分页)
*/
META_RANGE_START: "Data-Range-Start",
/**
* 数据范围长度
*/
META_RANGE_SIZE: "Data-Range-Size",
}
- Entity 实体接口字典
interface Entity {
/**
* 获取元信息字符串(queryString style)
*/
metaString(): string;
/**
* 获取元信息字典
*/
metaMap(): Map<string, string>;
/**
* 获取元信息
*/
meta(name: string): string | null;
/**
* 获取元信息或默认
*/
metaOrDefault(name: string, def: string): string;
/**
* 获取元信息并转为 int
*/
metaAsInt(name: string): number;
/**
* 获取元信息并转为 float
*/
metaAsFloat(name: string): number;
/**
* 添加元信息
* */
putMeta(name: string, val: string | null): any;
/**
* 删除元信息
* */
delMeta(name: string): any;
/**
* 获取数据
*/
data(): Buffer;
/**
* 获取数据并转为读取器
*/
dataAsReader(): CodecReader;
/**
* 获取数据并转为字符串
*/
dataAsString(): string;
/**
* 获取数据长度
*/
dataSize(): number;
/**
* 释放资源
*/
release(): any;
}
- Reply 答复实体接口字典
interface Reply extends Entity {
/**
* 流Id
*/
sid(): string;
/**
* 是否答复结束
*/
isEnd(): boolean;
}
- Message 消息接口字典
interface Message extends Entity {
/**
* At player name
*
* @since 2.1
*/
atName(): any;
/**
* 范围开始
* */
rangeStart(): number;
/**
* 范围大小
* */
rangeSize(): number;
/**
* 是否为请求
*/
isRequest(): boolean;
/**
* 是否为订阅
*/
isSubscribe(): boolean;
/**
* 获取消息流Id(用于消息交互、分片)
*/
sid(): string;
/**
* 获取消息事件
*/
event(): string;
/**
* 获取消息实体(有时需要获取实体)
*/
entity(): Entity | null;
}