Skip to content

jmalloc/echo-server

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Echo Server

A very simple HTTP echo server with support for websockets and server-sent events (SSE).

The server is designed for testing HTTP proxies and clients. It echoes information about HTTP request headers and bodies back to the client.

Behavior

  • Any messages sent from a websocket client are echoed as a websocket message.
  • Visit /.ws in a browser for a basic UI to connect and send websocket messages.
  • Request /.sse to receive the echo response via server-sent events.
  • Request any other URL to receive the echo response in plain text.

Configuration

  • The PORT environment variable sets the server port, which defaults to 8080.
  • Set the LOG_HTTP_BODY environment variable to dump request bodies to STDOUT.
  • Set the LOG_HTTP_HEADERS environment variable to dump request headers to STDOUT.
  • Set the SEND_SERVER_HOSTNAME environment variable to false to prevent the server from responding with its hostname before echoing the request. The client may send the X-Send-Server-Hostname request header to true or false to override this server-wide setting on a per-request basis.

Running the server

The examples below show a few different ways of running the server with the HTTP server bound to a custom TCP port of 10000.

Running locally

go get -u github.com/jmalloc/echo-server/...
PORT=10000 echo-server

Running under Docker

To run the latest version as a container:

docker run --detach -p 10000:8080 jmalloc/echo-server

Or, as a swarm service:

docker service create --publish 10000:8080 jmalloc/echo-server

The docker container can be built locally with:

make docker

About

An HTTP and WebSocket "echo" server for testing proxies and HTTP clients.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •