| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A cross-platform test server with support for HTTP/1.1 connection upgrades and deterministic scripted responses.
Multi-platform Docker images are available at gesellix/echo-server:<version> with <version> matching Git tags/releases on GitHub.
Supported platforms:
POST /api/stream HTTP/1.1 Connection: Upgrade Upgrade: testproto
The server upgrades the connection and speaks raw TCP after switching protocols.
When no script is provided, the server enters a simple interactive loop:
Sends a counter every second:
[0] scripted: counter: 0 [1] scripted: counter: 1 ...
Accepts basic commands from the client:
You can connect using the built-in client or tools like nc:
go run ./src/hijack_client.go
# or
{ echo -en "GET /api/stream HTTP/1.1\r\nHost: localhost\r\nConnection: Upgrade\r\nUpgrade: testproto\r\n\r\n"; cat; } | nc localhost 8080Send a JSON payload with a POST request to /api/stream, along with Upgrade headers.
POST /api/stream HTTP/1.1
Host: localhost:8080
Connection: Upgrade
Upgrade: testproto
Content-Type: application/json
{
"actions": [
{ "type": "response", "text": "first" },
{ "type": "delay", "ms": 1000 },
{ "type": "response", "text": "second" },
{ "type": "close" }
]
}| Type | Description | Example |
|---|---|---|
| response | Sends a line of text | "text": "Hello" |
| delay | Waits before next action (milliseconds) | "ms": 500 |
| close | Closes the TCP connection | (no parameters) |
A simple Go client for interactive testing is available at:
./src/hijack_client.go
It connects to the server, performs the upgrade handshake, and allows typing commands live.
To run via Docker:
docker run --rm -it -p 8080:8080 gesellix/echo-server:<version>Issues and contributions welcome via GitHub.
| Back | FazBrowse Home | New Git URL |