moonbridge-ts 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -21,7 +21,6 @@ export class Logger {
|
|
|
21
21
|
private static _subscribers: LogSubscriber[] = [];
|
|
22
22
|
|
|
23
23
|
readonly tag: string;
|
|
24
|
-
private _subscriber?: LogSubscriber;
|
|
25
24
|
|
|
26
25
|
private constructor(tag: string) {
|
|
27
26
|
this.tag = tag;
|
|
@@ -51,18 +50,13 @@ export class Logger {
|
|
|
51
50
|
Logger._loggers.forEach((logger, tag) => action(tag, logger));
|
|
52
51
|
}
|
|
53
52
|
|
|
54
|
-
set subscriber(cb: LogSubscriber) {
|
|
55
|
-
this._subscriber = cb;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
53
|
private notify(level: LogLevel, message: string, opts?: { file?: string; func?: string }): void {
|
|
59
54
|
const subs = [...Logger._subscribers];
|
|
60
|
-
if (this._subscriber) subs.push(this._subscriber);
|
|
61
55
|
for (const cb of subs) {
|
|
62
56
|
try {
|
|
63
57
|
cb(this.tag, level, message, opts);
|
|
64
58
|
} catch {
|
|
65
|
-
//
|
|
59
|
+
// Do nothing...
|
|
66
60
|
}
|
|
67
61
|
}
|
|
68
62
|
}
|
|
@@ -13,6 +13,7 @@ import { EventBus } from './types/ipc_event_bus';
|
|
|
13
13
|
import { Messenger } from './types/ipc_messenger';
|
|
14
14
|
import { RpcServiceFactory } from './rpc/rpc_service_factory';
|
|
15
15
|
import { RealMoonBridgeIpcClient } from './internal/moonbridge_ipc_client.internal';
|
|
16
|
+
import { Logger, LogSubscriber } from '../../moonbridge/logger/logger';
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* MoonBridge IPC 客户端抽象接口
|
|
@@ -70,6 +71,7 @@ export class MoonBridgeIpcClientBuilder {
|
|
|
70
71
|
private _messageInterceptor?: MessageInterceptor;
|
|
71
72
|
private _connectionObserver?: ConnectionObserver;
|
|
72
73
|
private _appLauncher?: AppLauncher;
|
|
74
|
+
private _logSubscriber?: LogSubscriber;
|
|
73
75
|
|
|
74
76
|
// PUBLIC METHODS
|
|
75
77
|
|
|
@@ -154,6 +156,14 @@ export class MoonBridgeIpcClientBuilder {
|
|
|
154
156
|
return this;
|
|
155
157
|
}
|
|
156
158
|
|
|
159
|
+
/**
|
|
160
|
+
* 添加日志订阅者
|
|
161
|
+
*/
|
|
162
|
+
logSubscriber(subscriber: LogSubscriber): this {
|
|
163
|
+
this._logSubscriber = subscriber;
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
|
|
157
167
|
/**
|
|
158
168
|
* 构建客户端实例并可选注册为默认客户端。
|
|
159
169
|
*/
|
|
@@ -167,6 +177,12 @@ export class MoonBridgeIpcClientBuilder {
|
|
|
167
177
|
);
|
|
168
178
|
}
|
|
169
179
|
|
|
180
|
+
// 添加日志订阅者
|
|
181
|
+
if (this._logSubscriber) {
|
|
182
|
+
Logger.addSubscriber(this._logSubscriber);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// 创建客户端设置
|
|
170
186
|
const settings = new IpcClientSettings({
|
|
171
187
|
clientName: this._clientName,
|
|
172
188
|
webSocketServerEndpoint: this._webSocketServerEndpoint,
|
|
@@ -140,6 +140,8 @@ export class RealMoonBridgeIpcServer implements MoonBridgeIpcServer {
|
|
|
140
140
|
return this._webSocketServer?.serverAddressInfo?.port ?? undefined;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
+
// PRIVATE METHODS
|
|
144
|
+
|
|
143
145
|
private _addClient(clientIdentity: ClientIdentity, client: SerialMessageChannel): void {
|
|
144
146
|
const clientName = clientIdentity.clientName;
|
|
145
147
|
const clientAddress = this._getClientAddress(client);
|
|
@@ -6,6 +6,7 @@ import { SocketServer } from '../general/transport/websocket/websocket_server';
|
|
|
6
6
|
import type { WebSocketServerEndpoint } from '../general/config/websocket_server_endpoint';
|
|
7
7
|
import type { ClientIdentity, ClientIdentityProvider } from './credential/client_identity';
|
|
8
8
|
import { RealMoonBridgeIpcServer } from './internal/moonbridge_ipc_server.internal';
|
|
9
|
+
import { Logger, LogSubscriber } from '../../moonbridge/logger/logger';
|
|
9
10
|
|
|
10
11
|
/** 消息回复函数,用于向客户端发送响应消息 */
|
|
11
12
|
export type IpcMessageReply = (message: string) => Promise<boolean>;
|
|
@@ -78,6 +79,7 @@ export class MoonBridgeIpcServerBuilder {
|
|
|
78
79
|
private _onClientDisconnected?: DisconnectedCallback;
|
|
79
80
|
private _messagePreprocessor?: MessagePreprocessor;
|
|
80
81
|
private _onMessageReceived?: OnMessageReceived;
|
|
82
|
+
private _logSubscriber?: LogSubscriber;
|
|
81
83
|
|
|
82
84
|
/** 设置服务器名称 */
|
|
83
85
|
serverName(name: string): this {
|
|
@@ -121,6 +123,12 @@ export class MoonBridgeIpcServerBuilder {
|
|
|
121
123
|
return this;
|
|
122
124
|
}
|
|
123
125
|
|
|
126
|
+
/** 设置日志订阅者 */
|
|
127
|
+
logSubscriber(subscriber: LogSubscriber): this {
|
|
128
|
+
this._logSubscriber = subscriber;
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
|
|
124
132
|
/**
|
|
125
133
|
* 构建并返回配置完成的服务器实例
|
|
126
134
|
* @param makeDefault 是否将该服务器实例设置为默认服务器,默认为 false
|
|
@@ -130,6 +138,12 @@ export class MoonBridgeIpcServerBuilder {
|
|
|
130
138
|
throw new Error('请使用 useWebSocketChannel 设置传输配置。',);
|
|
131
139
|
}
|
|
132
140
|
|
|
141
|
+
// 添加日志订阅者
|
|
142
|
+
if (this._logSubscriber) {
|
|
143
|
+
Logger.addSubscriber(this._logSubscriber);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// 创建服务器实例
|
|
133
147
|
const server = new RealMoonBridgeIpcServer(
|
|
134
148
|
this._serverName,
|
|
135
149
|
this._webSocketServerEndpoint,
|
|
@@ -141,7 +155,6 @@ export class MoonBridgeIpcServerBuilder {
|
|
|
141
155
|
);
|
|
142
156
|
|
|
143
157
|
MoonBridgeIpcServerRegistry.instance.register(server);
|
|
144
|
-
|
|
145
158
|
if (makeDefault) {
|
|
146
159
|
MoonBridgeIpcServerRegistry.instance.setDefault(server);
|
|
147
160
|
}
|