add js class
This commit is contained in:
42
docs/spec.md
42
docs/spec.md
@@ -1,7 +1,7 @@
|
||||
# Specification: NATSBridge
|
||||
|
||||
**Version**: 1.0.0
|
||||
**Date**: 2026-03-13
|
||||
**Version**: 1.1.0
|
||||
**Date**: 2026-03-15
|
||||
**Status**: Active
|
||||
**Ground Truth**: [`src/NATSBridge.jl`](../src/NATSBridge.jl)
|
||||
**Specification Format**: JSON Schema + AsyncAPI
|
||||
@@ -481,11 +481,38 @@ async function smartsend(
|
||||
reply_to?: string;
|
||||
reply_to_msg_id?: string;
|
||||
is_publish?: boolean;
|
||||
nats_connection?: NATS.Connection;
|
||||
nats_connection?: NATSClient | NATS.Connection;
|
||||
msg_id?: string;
|
||||
sender_id?: string;
|
||||
}
|
||||
): Promise<[Object, string]>;
|
||||
|
||||
// NATSClient class for connection management
|
||||
class NATSClient {
|
||||
constructor(url: string, keepAlive?: boolean);
|
||||
connect(): Promise<NATS.Connection>;
|
||||
publish(subject: string, message: string, correlationId: string): Promise<void>;
|
||||
close(): Promise<void>;
|
||||
getConnection(): NATS.Connection | null;
|
||||
isConnected(): boolean;
|
||||
}
|
||||
|
||||
// NATSConnectionPool for managing multiple connections
|
||||
class NATSConnectionPool {
|
||||
constructor(url: string, maxSize?: number);
|
||||
acquire(): Promise<NATSClient>;
|
||||
release(client: NATSClient): void;
|
||||
closeAll(): Promise<void>;
|
||||
}
|
||||
|
||||
// publishMessage function for manual publishing
|
||||
async function publishMessage(
|
||||
brokerUrlOrClient: string | NATSClient | NATS.Connection,
|
||||
subject: string,
|
||||
message: string,
|
||||
correlationId: string,
|
||||
closeConnection?: boolean
|
||||
): Promise<void>;
|
||||
```
|
||||
|
||||
#### MicroPython
|
||||
@@ -805,8 +832,10 @@ flowchart TD
|
||||
| Julia | Arrow.jl | Latest | Arrow IPC support |
|
||||
| Julia | HTTP.jl | Latest | HTTP file server |
|
||||
| Julia | UUIDs.jl | Latest | UUID generation |
|
||||
| Node.js | nats | Latest | NATS client |
|
||||
| Node.js | nats | Latest | NATS client (TCP) |
|
||||
| Node.js | node-fetch | Latest | HTTP file server |
|
||||
| Browser | nats.ws | Latest | NATS client (WebSocket) |
|
||||
| Browser | nats | Latest | NATS client (for bundling) |
|
||||
| Python | nats-py | Latest | NATS client |
|
||||
| Python | aiohttp | Latest | HTTP file server |
|
||||
| Python | pyarrow | Latest | Arrow IPC support |
|
||||
@@ -825,6 +854,11 @@ flowchart TD
|
||||
|
||||
| Date | Version | Changes |
|
||||
|------|---------|---------|
|
||||
| 2026-03-15 | 1.1.0 | Browser connection management |
|
||||
| - | - | Added NATSClient class with keepAlive support |
|
||||
| - | - | Added NATSConnectionPool for connection reuse |
|
||||
| - | - | Added publishMessage function with closeConnection option |
|
||||
| - | - | Added nats.ws to browser dependencies |
|
||||
| 2026-03-13 | 1.0.0 | Initial specification |
|
||||
| - | - | Message envelope schema defined |
|
||||
| - | - | Payload schema with transport modes |
|
||||
|
||||
Reference in New Issue
Block a user