Setting Up HTTPS Rendezvous Server

Hello everyone, Is there any proper documentation of setting up a rendezvous server with HTTPS, using ngix proxy doesn’t work.

Also why the builder is initially sending requests to rendezvous and then switching to rendezvous2 after the code is scanned?


Getting this error–

2020/05/05 16:49:19 [error] 27579#27579: *101 recv() failed (104: Connection reset by peer) while reading response header from upstream, client:, server:, request: "GET /rendezvous2/e26d017868847e17f10ed3e4fe8220688299e0ba HTTP/1.1", upstream: "", host: "", referrer: ""
2020/05/05 16:49:32 [error] 27579#27579: *128 upstream prematurely closed connection while reading response header from upstream, client:, server:, request: "POST /rendezvous2/ HTTP/1.1", upstream: "", host: ""

Are you running it within the Docker container? If not, are you also running memcached? The second stage rendezvous uses memcached to cache the WebRTC peer negotiation information.

Yes, its running within docker container.

Also whenever connect is press in the companion : INFO exited: rendezvous (exit status 1; not expected)

Do you see any error messages in the docker logs? If the server is exiting prematurely there should a stack trace indicating why.

Thanks @ewpatton for the suggestion. Can you also please guide with the rough steps to setup the server with HTTPS so that I can check If I’ve done everything right.


it was because the rendezvous2 was expecting JSON to parse while rendezvous was using querystring. A guide on how to use rendezvous2 would be helpful

1 Like

If you’re using our sources, rendezvous2 should just work. It’s used to negotiate the WebRTC connection between the companion app and the website. If your sources aren’t up-to-date with our master then you may need to use an earlier version of the rendezvous server.

Its Up-to-date, the only problem remaining now is that companion is not communicating/connecting. Its just calling GET Requests:

Tried it with both
rendezvous and rendezvous2

So, like if i clone the AppInventor Repo and just make the rendezvous server compatible with https, will it just work or do i have to like refactor some code?

For HTTPS you’ll need something to terminate the SSL connection. If memory serves, we are using nginx to terminate the SSL connection and then reverse proxying to the docker container.

I'm doing the same. I am just confused if it will switch between rendezvous and rendezvous2 on its own or if i have to change it

In the production system, the first rendezvous step is used to determine whether we should talk to an alternative rendezvous server. WebRTC connection negotiation is then done via rendezvous2. Legacy mode doesn’t need the second rendezvous since once the IP information is exchanged the browser makes direct connections to the companion app.

1 Like