multica/src/gateway/test-client.ts
Naiyuan Qing 3d7b13555f refactor(sdk): unify gateway-sdk into @multica/sdk package
Sync latest code from src/shared/gateway-sdk/ into packages/sdk/,
update all backend imports to use @multica/sdk, and remove the
duplicate src/shared/gateway-sdk/ directory.

- Translate Chinese comments to English in SDK source
- Fix package.json exports with default condition
- Add @multica/sdk as workspace dependency for backend
- Update imports in gateway, test-client, and hub

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 13:43:52 +08:00

70 lines
1.8 KiB
TypeScript

import {
GatewayClient,
HelloAction,
HelloResponseAction,
type HelloPayload,
type HelloResponsePayload,
} from "@multica/sdk";
// 模拟一个 Client
const client = new GatewayClient({
url: "http://localhost:3000",
deviceId: "client-001",
deviceType: "client",
});
// 模拟一个 Agent
const agent = new GatewayClient({
url: "http://localhost:3000",
deviceId: "agent-001",
deviceType: "agent",
});
// Agent 监听消息
agent
.onStateChange((state) => console.log("[Agent] State:", state))
.onRegistered((deviceId) => {
console.log("[Agent] Registered as:", deviceId);
})
.onMessage((message) => {
console.log("[Agent] Received message:", message);
// 回复消息
if (message.action === HelloAction) {
const payload = message.payload as HelloPayload;
console.log("[Agent] Replying to client...");
agent.send<HelloResponsePayload>(message.from, HelloResponseAction, {
reply: `Hello ${message.from}! I received: "${payload.greeting}"`,
});
}
})
.onSendError((error) => console.error("[Agent] Send error:", error))
.connect();
// Client 监听消息
client
.onStateChange((state) => console.log("[Client] State:", state))
.onRegistered((deviceId) => {
console.log("[Client] Registered as:", deviceId);
// 注册后发送消息给 Agent
setTimeout(() => {
console.log("[Client] Sending message to agent-001...");
client.send<HelloPayload>("agent-001", HelloAction, {
greeting: "Hello Agent!",
});
}, 500);
})
.onMessage((message) => {
console.log("[Client] Received message:", message);
})
.onSendError((error) => console.error("[Client] Send error:", error))
.connect();
// 5秒后断开
setTimeout(() => {
console.log("\nClosing connections...");
client.disconnect();
agent.disconnect();
process.exit(0);
}, 5000);