sockbin
Version:
:zap: Websocket Requests and Response service. Built in Node.js :cake:
149 lines (104 loc) • 3.23 kB
Markdown

:zap: Websocket Requests and Response service. Built in Node.js :cake:
### URL
`ws://sockb.in/`
Feel free to play in the [Sockbin Playground!](http://sockb.in)
### API
#### Basic response
Returns a basic json object echoing back the time of the request and the posted data
*Endpoint:* `/`
*Response:*
```js
{
"timestamp": "Thu Apr 28 2016 22:25:19 GMT+0000 (UTC)",
"url": "http://sockb.in/",
"reqData": "Hello Sockbin!"
}
```
#### Custom Response
Returns the value of `response=` in the URL, after decoding.
*Endpoint:* `/?response=%7Bfoo%3A%20bar%7D`
*Response:*
```js
{foo: bar}
```
#### URL Piping
Returns the results of a `GET` request to the provided URL in the `pipe=` parameter.
*Endpoint:* `/?pipe=http%3A%2F%2Fhttpbin.org%2Fget`
*Response:*
```js
{
"args": {},
"headers": {
"Host": "httpbin.org"
},
"origin": "54.90.123.185",
"url": "http://httpbin.org/get"
}
```
#### Delay
Returns after a specified time (in ms)
*Endpoint:* `/delay/1000`
*Response:*
```js
{
"timestamp": "Thu Apr 28 2016 22:25:19 GMT+0000 (UTC)",
"url": "http://sockb.in/",
"reqData": "Hello Sockbin!"
}
// returns after 1 second
```
#### Repeat
Returns a basic json object the specified number of times
*Endpoint:* `/repeat/5`
*Response:*
```js
{
"timestamp": "Thu Apr 28 2016 22:25:19 GMT+0000 (UTC)",
"url": "http://sockb.in/",
"reqData": "Hello Sockbin!"
}
// repeated 5 times
```
#### Combining
You can combine these endpoints to produce more robust results
*Endpoint:* `/delay/5000/repeat/5`
*Response:*
```js
{
"timestamp": "Thu Apr 28 2016 22:25:19 GMT+0000 (UTC)",
"url": "http://sockb.in/",
"reqData": "Hello Sockbin!"
}
// repeated 5 times every 5 seconds
```
#### Run For
You can use the delay endpoint with a special endpoint, `runfor` to return every *x* seconds for the specified time.
*Endpoint:* `/runfor/60000/delay/5000`
*Response:*
```js
{
"timestamp": "Thu Apr 28 2016 22:25:19 GMT+0000 (UTC)",
"url": "http://sockb.in/",
"reqData": "Hello Sockbin!"
}
// repeated every 5 seconds for 1 minute
```
### Hosted restrictions
[sockb.in](http://sockb.in) is hosted on a free dyno on Heroku. As such, usage is restricted. The restricitions are as follows:
- When repeating with a delay, delay must be over 5 seconds, and repeat must be under 50
- when using `runfor`, delay must be over 5 seconds, and `runfor` cannot be over 5 minutes.
### Local Installation
You can install sockbin by cloning this repo locally:
```
git clone https://github.com/therebelrobot/sockbin.git
cd sockbin
npm install
npm start
```
Once there, if you set an environment variable of `OVERRIDE=token`, and include that in your url request as `&override=token`, you can bypass bypass the hosted restrictions.
### Contributing
Please feel free! [Open a Github Issue](https://github.com/therebelrobot/sockbin) for any issues you find, and feel free to [Fork this repo](https://github.com/therebelrobot/sockbin#fork-destination-box) to work on your own changes!
If you are running this in development mode, use `npm run develop` instead of `npm start` to use `nodemon` automagically :cake:.
### License
[ISC](https://tldrlegal.com/license/-isc-license)