Skip to content
Ivaylo Ivanov edited this page Feb 14, 2016 · 7 revisions

Defined in Esrol-servers and implemented in Esrol-server-app

At the moment, Esrol allows you to create 4 different server types in your application: HTTP, TCP, UDP and HTTP WEBSOCKET. The process of enabling a server is pretty easy:

HTTP

app/config/config.json

{
  "cluster": {
    "enabled": false,
    "cores": "auto"
  },
  "servers": {
    "http": {
      "enabled": true,
      "port": 3333,
      "methods": ["get", "put", "post", "delete", "options"],
      "webSockets": false
    },
    "tcp": {
      "enabled": false,
      "port": 3334,
      "allowHalfOpen": false,
      "pauseOnConnect": false
    },
    "udp": {
      "enabled": false,
      "type": "udp4",
      "port": 3335
    }
  }
}

You can also set a namespace of your server by setting a namespace property with value as follow:

{
  "cluster": {
    "enabled": false,
    "cores": "auto"
  },
  "servers": {
    "http": {
      "enabled": true,
      "port": 3333,
      "namespace": "/v1",
      "methods": ["get", "put", "post", "delete", "options"],
      "webSockets": false
    },
    "tcp": {
      "enabled": false,
      "port": 3334,
      "allowHalfOpen": false,
      "pauseOnConnect": false
    },
    "udp": {
      "enabled": false,
      "type": "udp4",
      "port": 3335
    }
  }

This will evaluate www.example.com:3333/v1

TCP

app/config/config.json

{
  "cluster": {
    "enabled": false,
    "cores": "auto"
  },
  "servers": {
    "http": {
      "enabled": false,
      "port": 3333,
      "methods": ["get", "put", "post", "delete", "options"],
      "webSockets": false
    },
    "tcp": {
      "enabled": true,
      "port": 3334,
      "allowHalfOpen": false,
      "pauseOnConnect": false
    },
    "udp": {
      "enabled": false,
      "type": "udp4",
      "port": 3335
    }
  }
}

UDP

app/config/config.json

{
  "cluster": {
    "enabled": false,
    "cores": "auto"
  },
  "servers": {
    "http": {
      "enabled": false,
      "port": 3333,
      "methods": ["get", "put", "post", "delete", "options"],
      "webSockets": false
    },
    "tcp": {
      "enabled": false,
      "port": 3334,
      "allowHalfOpen": false,
      "pauseOnConnect": false
    },
    "udp": {
      "enabled": true,
      "type": "udp4",
      "port": 3335
    }
  }
}

HTTP WEBSOCKET

app/config/config.json

{
  "cluster": {
    "enabled": false,
    "cores": "auto"
  },
  "servers": {
    "http": {
      "enabled": true,
      "port": 3333,
      "methods": ["get", "put", "post", "delete", "options"],
      "webSockets": true
    },
    "tcp": {
      "enabled": false,
      "port": 3334,
      "allowHalfOpen": false,
      "pauseOnConnect": false
    },
    "udp": {
      "enabled": false,
      "type": "udp4",
      "port": 3335
    }
  }
}

Note: you need to enable both HTTP server and HTTP webSockets in order to use HTTP WEBSOCKETS

ALL

If you need for some unknown reason to create all servers in one instance, just enable them:

app/config/config.json

{
  "cluster": {
    "enabled": false,
    "cores": "auto"
  },
  "servers": {
    "http": {
      "enabled": true,
      "port": 3333,
      "methods": ["get", "put", "post", "delete", "options"],
      "webSockets": true
    },
    "tcp": {
      "enabled": true,
      "port": 3334,
      "allowHalfOpen": false,
      "pauseOnConnect": false
    },
    "udp": {
      "enabled": true,
      "type": "udp4",
      "port": 3335
    }
  }
}

Clone this wiki locally