Skip to content

Commit

Permalink
🚚 [desktop-dev/plaoc] rename message_pack to cbor
Browse files Browse the repository at this point in the history
  • Loading branch information
kingsword09 committed Jul 12, 2023
1 parent 7744826 commit a6529a4
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 27 deletions.
2 changes: 1 addition & 1 deletion desktop-dev/src/browser/jmm/micro-module.js.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ connectAdapterManager.append(async (fromMM, toMM, reason) => {
*/
export class JsMicroModule extends MicroModule {
readonly ipc_support_protocols: $IpcSupportProtocols = {
message_pack: true,
cbor: true,
protobuf: false,
raw: true,
};
Expand Down
4 changes: 2 additions & 2 deletions desktop-dev/src/browser/js-process/js-process.ts
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ export class JsProcessNMM extends NativeMicroModule {
const env = JSON.stringify({
host: httpDwebServer.startResult.urlInfo.host,
debug: "true",
"ipc-support-protocols": "raw message_pack",
"ipc-support-protocols": "raw cbor",
} satisfies Record<string, string>);

/**
Expand Down Expand Up @@ -460,7 +460,7 @@ export class JsProcessNMM extends NativeMicroModule {
mmid: string
) {
const env = JSON.stringify({
"ipc-support-protocols": "raw message_pack",
"ipc-support-protocols": "raw cbor",
} satisfies Record<string, string>);
/**
* 创建一个通往 worker 的消息通道
Expand Down
4 changes: 2 additions & 2 deletions desktop-dev/src/browser/js-process/js-process.worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ export class JsProcessMicroModule implements $MicroModule {
[];
return {
raw: protocols.includes("raw"),
message_pack: protocols.includes("message_pack"),
cbor: protocols.includes("cbor"),
protobuf: protocols.includes("protobuf"),
} satisfies $IpcSupportProtocols;
})();
Expand All @@ -132,7 +132,7 @@ export class JsProcessMicroModule implements $MicroModule {
const protocols = env["ipc-support-protocols"] ?? "";
const ipc_support_protocols = {
raw: protocols.includes("raw"),
message_pack: protocols.includes("message_pack"),
cbor: protocols.includes("cbor"),
protobuf: protocols.includes("protobuf"),
} satisfies $IpcSupportProtocols;
let rote = IPC_ROLE.CLIENT as IPC_ROLE;
Expand Down
14 changes: 7 additions & 7 deletions desktop-dev/src/core/ipc-web/MessagePortIpc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export class MessagePortIpc extends Ipc {
readonly role: IPC_ROLE = IPC_ROLE.CLIENT,
readonly self_support_protocols: $IpcSupportProtocols = {
raw: true,
message_pack: true,
cbor: true,
protobuf: false,
}
) {
Expand All @@ -27,15 +27,15 @@ export class MessagePortIpc extends Ipc {
/** messageport内置JS对象解码,但也要看对方是否支持接受,比如Android层就只能接受String类型的数据 */
this._support_raw =
self_support_protocols.raw && this.remote.ipc_support_protocols.raw;
/** JS 环境里支持 message_pack 协议,但也要看对等方是否支持 */
this._support_message_pack =
self_support_protocols.message_pack &&
this.remote.ipc_support_protocols.message_pack;
/** JS 环境里支持 cbor 协议,但也要看对等方是否支持 */
this._support_cbor =
self_support_protocols.cbor &&
this.remote.ipc_support_protocols.cbor;

port.addEventListener("message", (event) => {
const message = this.support_raw
? $messageToIpcMessage(event.data, this)
: this.support_message_pack
: this.support_cbor
? $messagePackToIpcMessage(event.data, this)
: $jsonToIpcMessage(event.data, this);
if (message === undefined) {
Expand Down Expand Up @@ -74,7 +74,7 @@ export class MessagePortIpc extends Ipc {

if (this.support_raw) {
message_data = message_raw;
} else if (this.support_message_pack) {
} else if (this.support_cbor) {
message_data = encode(message_raw);
} else {
message_data = JSON.stringify(message_raw);
Expand Down
14 changes: 7 additions & 7 deletions desktop-dev/src/core/ipc-web/ReadableStreamIpc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ export class ReadableStreamIpc extends Ipc {
readonly role: IPC_ROLE,
readonly self_support_protocols: $IpcSupportProtocols = {
raw: false,
message_pack: true,
cbor: true,
protobuf: false,
}
) {
super();
/** JS 环境里支持 message_pack 协议 */
this._support_message_pack =
self_support_protocols.message_pack &&
remote.ipc_support_protocols.message_pack;
/** JS 环境里支持 cbor 协议 */
this._support_cbor =
self_support_protocols.cbor &&
remote.ipc_support_protocols.cbor;
}
#rso = new ReadableStreamOut<Uint8Array>();
/** 这是输出流,给外部读取用的 */
Expand Down Expand Up @@ -80,7 +80,7 @@ export class ReadableStreamIpc extends Ipc {
const data = await reader.readBinary(size);

/// 开始处理数据并做响应
const message = this.support_message_pack
const message = this.support_cbor
? $messagePackToIpcMessage(data, this)
: $jsonToIpcMessage(simpleDecoder(data, "utf8"), this);

Expand Down Expand Up @@ -132,7 +132,7 @@ export class ReadableStreamIpc extends Ipc {
message_raw = message;
}

const message_data = this.support_message_pack
const message_data = this.support_cbor
? encode(message_raw)
: simpleEncoder(JSON.stringify(message_raw), "utf8");
this._len[0] = message_data.length;
Expand Down
8 changes: 4 additions & 4 deletions desktop-dev/src/core/ipc/ipc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ export abstract class Ipc {
* 二进制传输在网络相关的服务里被支持,里效率会更高,但前提是对方有 MessagePack 的编解码能力
* 否则 JSON 是通用的传输协议
*/
get support_message_pack() {
return this._support_message_pack;
get support_cbor() {
return this._support_cbor;
}
protected _support_message_pack = false;
protected _support_cbor = false;
/**
* 是否支持使用 Protobuf 直接传输二进制
* 在网络环境里,protobuf 是更加高效的协议
Expand All @@ -60,7 +60,7 @@ export abstract class Ipc {
get support_binary() {
return (
this._support_binary ??
(this.support_message_pack || this.support_protobuf || this.support_raw)
(this.support_cbor || this.support_protobuf || this.support_raw)
);
}

Expand Down
2 changes: 1 addition & 1 deletion desktop-dev/src/core/micro-module.native.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ connectAdapterManager.append((fromMM, toMM, reason) => {

export abstract class NativeMicroModule extends MicroModule {
readonly ipc_support_protocols: $IpcSupportProtocols = {
message_pack: true,
cbor: true,
protobuf: true,
raw: true,
};
Expand Down
2 changes: 1 addition & 1 deletion desktop-dev/src/core/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export type $DWEB_DEEPLINK = `dweb:${string}`;
* 通讯支持的传输协议
*/
export interface $IpcSupportProtocols {
message_pack: boolean;
cbor: boolean;
protobuf: boolean;
raw: boolean;
}
Expand Down
2 changes: 1 addition & 1 deletion plaoc/src/emulator/helper/mokeServerIpcHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export const createMockModuleServerIpc = (mmid: $MMID, apiUrl = BASE_URL) => {
{
mmid,
ipc_support_protocols: {
message_pack: false,
cbor: false,
protobuf: false,
raw: false,
},
Expand Down
2 changes: 1 addition & 1 deletion plaoc/src/server/http-api-server.(dev).ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export class Server_api extends _Server_api {
{
mmid: mmid,
ipc_support_protocols: {
message_pack: false,
cbor: false,
protobuf: false,
raw: false,
},
Expand Down

0 comments on commit a6529a4

Please sign in to comment.