Object 內置對象

對象Message

基礎消息對象

Message 對象兼容於 mq 各個模塊,可用於構建自定義消息處理系統,創建方法:

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

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<this>Message|new Message()|TEXT;BINARY|value;params;type;data;body;length;stream;lastError|read();readAll();write();json();pack();end();isEnded();clear();sendTo();readFrom()] [<class>HttpMessage] [<class>HttpRequest] [<class>HttpResponse] [<class>WebSocketMessage] [object] <:- [Message] [Message] <:- [HttpMessage] [HttpMessage] <:- [HttpRequest] [HttpMessage] <:- [HttpResponse] [Message] <:- [WebSocketMessage] Message new Message() TEXT BINARY value params type data body length stream lastError read() readAll() write() json() pack() end() isEnded() clear() sendTo() readFrom() object toString() toJSON() HttpMessage HttpRequest HttpResponse WebSocketMessage

構造函數

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 序列化的值