httpmsgbus is a server implementing the HMB protocol. It can use a database (-D) or RAM only. httpmsgbus usually runs behind a web server acting as a reverse proxy.
Supported database types are mongodb and filedb. MongoDB is recommended in most scenarios. Filedb is suitable for binary messages with fixed size, such as waveform records. Database URL can take one of the following forms:
The following optional parameters are supported by filedb:
When HMB runs behind a reverse proxy, connections appear to originate from localhost or wherever the proxy is running. Using the X-Forwarded-For HTTP header, it is possible to determine the actual IP address of a client, which is then used for session counting (-c), etc.
When using multiple servers, it may happen that a client requests a future message that has not reached the current server yet. Sequence numbers in future can be enabled with the -d command-line option. If the maximum difference is exceeded, the sequence number is considered invalid and the current seqence number is used.
httpmsgbus [options]
-D string | Database URL |
-F | Use X-Forwarded-For |
-P int | TCP port (default 8000) |
-V | Show program’s version and exit |
-b int | Buffer (RAM) size in messages per queue (default 100) |
-c int | Connections (sessions) per IP (default 10) |
-d int | Maximum sequence difference into future (default 0) |
-h | Show help message |
-p int | Maximum size of POST data in KB (default 10240) |
-q int | Queue (MongoDB capped collection) size in MB (default 256) |
-s | Log via syslog |
-t int | Session timeout in seconds (default 120) |
hmbseedlink is a proxy implementing the SeedLink protocol on top of HMB. A SeedLink station maps to an HMB queue and a SeedLink stream maps to an HMB topic. The payload of an HMB message would be a Mini-SEED record.
hmbseedlink [options]
-H string | Source HMB URL |
-O string | Organization |
-P int | TCP port (default 18000) |
-V | Show program’s version and exit |
-c int | Connections per IP (default 10) |
-h | Show help message |
-q int | Limit backlog of records (queue length) |
-s | Log via syslog |
-t int | HMB timeout in seconds (default 120) |
-w int | Wait for out-of-order data in seconds |
wavefeed is a program that runs a SeedLink plugin (normally chain_plugin) and sends the waveform data to HMB. Only log and Mini-SEED packets are supported.
wavefeed [options]
-C string | Plugin command line |
-H string | Destination HMB URL |
-V | Show program’s version and exit |
-X string | Regex matching channels with unreliable timing |
-b int | Maximum number of messages to buffer (default 1024) |
-h | Show help message |
-s | Log via syslog |
-t int | HMB timeout in seconds (default 120) |