toxy icon indicating copy to clipboard operation
toxy copied to clipboard

Nothing works on Node 16

Open mifi opened this issue 3 years ago • 4 comments

This example https://github.com/h2non/toxy/blob/master/examples/bandwidth-limit.js or even this simple code:

const toxy = require('toxy')
const http = require('http');

const proxy = toxy()

const rules = proxy.rules
const poisons = proxy.poisons

proxy
  .forward('http://httpbin.org')

proxy.all('/*')

proxy.listen(3000)
console.log('Server listening on port:', 3000)

...doesn't work.

When connecting with curl:

curl -vvv http://localhost:3000/ 
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 3000 (#0)
> GET / HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.64.1
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
* Closing connection 0

Works fine with node v10.

mifi avatar Feb 17 '22 04:02 mifi

toxy is no longer actively maintained, I'm sorry. Although, it can be easily adapted to work with node v14+, but it would be quicker to use other maintained solutions out there, such as toxiproxy

h2non avatar Feb 17 '22 14:02 h2non

Thanks for your fast reply! I also went with toxiproxy. That's a pity, because toxy is a really cool tool, and even seems to support more features than toxyproxy. Maybe you could put a note on top of the readme warning people that it's no longer maintained and not working on latest Node.js, or looking for maintainer, if you are open for someone taking over:)

mifi avatar Feb 17 '22 14:02 mifi

Right, just done!

h2non avatar Feb 17 '22 16:02 h2non

Also stumbled on this. For anyone who is interested, you'd need to add at least one poison for it to work, e.g.:

-proxy.all('/*')
+proxy
+  .all('/*')
+  .poison(poisons.latency(0))

stepankuzmin avatar May 27 '23 11:05 stepankuzmin