Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use MQ as our transport, instead of websockets. #5

Merged
merged 9 commits into from
Apr 25, 2019
Merged

Use MQ as our transport, instead of websockets. #5

merged 9 commits into from
Apr 25, 2019

Conversation

skx
Copy link
Owner

@skx skx commented Apr 24, 2019

This is a work-in-progress pull-request which is intended to move from using websockets as the transport towards using MQ.

This is designed to ensure that the server scales and can handle multiple overlapping clients without deadlocking.

  • update documentation.
  • update client.
  • test client via cli.
  • update server.
  • add signature/security mechanisms.
  • merge, make release, retire old instance.

skx added 7 commits April 24, 2019 17:07
This updates the hostname to be `tunnel.steve.fi`, because we're
changing the way the client <-> server link works, and that means
the existing public-endpoint won't work.

TODO:

* Think about signing the requests the server submits.
  * That doesn't stop sniffing, but does stop spidering/probing.
This has been tested via the `mosquitto_pub` command; inject
a full-request such as:

   GET / HTTP/1.0
   Host: foo.example.com

The result is that the response is sent back down the same
channel, as expected.

Porting the server should be pretty simple, based on this work.

Since the HTTP-server and the MQ-server are on the same host
I'm going to cheat and only talk to MQ on the localhost for
the server.
Tested with 20 concurrent clients accessing 20 local (python
webservers).

Zero deadlocks.  Zero failures.
@skx
Copy link
Owner Author

skx commented Apr 24, 2019

This is functional.

However I will look at embedded queues, as per #4 before I merge. It might be that will be cleaner and better.

@skx skx merged commit 3a34e7b into master Apr 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant