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 常用元信息字典


```json
 {
    /**
     * 框架版本号
     */
    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 实体接口字典

```typescript
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 答复实体接口字典

```typescript
interface Reply extends Entity {
    /**
     * 流Id
     */
    sid(): string;
    /**
     * 是否答复结束
     */
    isEnd(): boolean;
}
```

* Message 消息接口字典

```typescript
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;
}
```


