Object 内置对象

对象 Message

基础消息对象

Message 对象兼容于 mq 各个模块,可用于构建自定义消息处理系统,创建方法:

1 2
var mq = require("mq"); var m = new mq.Message();

继承关系

%0 object object toString() toJSON() Message Message new Message() TEXT BINARY value params type data body length stream lastError read() readAll() write() json() pack() end() isEnded() clear() sendTo() readFrom() object->Message HttpMessage HttpMessage Message->HttpMessage WebSocketMessage WebSocketMessage Message->WebSocketMessage HttpRequest HttpRequest HttpMessage->HttpRequest HttpResponse HttpResponse HttpMessage->HttpResponse

构造函数

Message

消息对象构造函数

1
new Message();

常量

TEXT

指定消息类型 1,代表一个文本类型

1
const Message.TEXT = 1;

BINARY

指定消息类型 2,代表一个二进制类型

1
const Message.BINARY = 2;

成员属性

value

String, 消息的基本内容

1
String Message.value;

params

NArray, 消息的基本参数

1
readonly NArray Message.params;

type

Integer, 消息类型

1
Integer Message.type;

data

Value, 查询消息的数据,此属性会根据 content-type 返回不同数据,为 text 时,返回文本,为 json 时返回 json,其它时候返回二进制

1
readonly Value Message.data;

body

SeekableStream, 包含消息数据部分的流对象

1
SeekableStream Message.body;

length

Long, 消息数据部分的长度

1
readonly Long Message.length;

stream

Stream, 查询消息 readFrom 时的流对象

1
readonly Stream Message.stream;

lastError

String, 查询和设置消息处理的最后错误

1
String Message.lastError;

成员函数

read

从流内读取指定大小的数据,此方法为 body 相应方法的别名

1
Buffer Message.read(Integer bytes = -1) async;

调用参数:

  • bytes: Integer, 指定要读取的数据量,缺省为读取随机大小的数据块,读出的数据尺寸取决于设备

返回结果:

  • Buffer, 返回从流内读取的数据,若无数据可读,或者连接中断,则返回 null

readAll

从流内读取剩余的全部数据,此方法为 body 相应方法的别名

1
Buffer Message.readAll() async;

返回结果:

  • Buffer, 返回从流内读取的数据,若无数据可读,或者连接中断,则返回 null

write

写入给定的数据,此方法为 body 相应方法的别名

1
Message.write(Buffer data) async;

调用参数:

  • data: Buffer, 给定要写入的数据

json

以 JSON 编码写入给定的数据

1
Value Message.json(Value data);

调用参数:

  • data: Value, 给定要写入的数据

返回结果:

  • Value, 此方法不会返回数据

以 JSON 编码解析消息中的数据

1
Value Message.json();

返回结果:

  • Value, 返回解析的结果

pack

msgpack 编码写入给定的数据

1
Value Message.pack(Value data);

调用参数:

  • data: Value, 给定要写入的数据

返回结果:

  • Value, 此方法不会返回数据

msgpack 编码解析消息中的数据

1
Value Message.pack();

返回结果:

  • Value, 返回解析的结果

end

设置当前消息处理结束,Chain 处理器不再继续后面的事务

1
Message.end();

isEnded

查询当前消息是否结束

1
Boolean Message.isEnded();

返回结果:

  • Boolean, 结束则返回 true

clear

清除消息的内容

1
Message.clear();

sendTo

发送格式化消息到给定的流对象

1
Message.sendTo(Stream stm) async;

调用参数:

  • stm: Stream, 指定接收格式化消息的流对象

readFrom

从给定的缓存流对象中读取格式化消息,并解析填充对象

1
Message.readFrom(Stream stm) async;

调用参数:

  • stm: Stream, 指定读取格式化消息的流对象

toString

返回对象的字符串表示,一般返回 "[Native Object]",对象可以根据自己的特性重新实现

1
String Message.toString();

返回结果:

  • String, 返回对象的字符串表示

toJSON

返回对象的 JSON 格式表示,一般返回对象定义的可读属性集合

1
Value Message.toJSON(String key = "");

调用参数:

  • key: String, 未使用

返回结果:

  • Value, 返回包含可 JSON 序列化的值