Home » Nodejs » using ngrok with websocket (or socket.io)

using ngrok with websocket (or socket.io)

Posted by: admin November 30, 2017 Leave a comment

Questions:

Are there any simple sample code showing ngrok forwarding socket.io/websocket (running under nodejs on localhost)?

In other words, does

ngrok http 3000

work with a nodejs server and socket.io running on port 3000? Or something like

ngrok http+tcp 3000 (just wild guessing)

EDIT:

to answer my own question after help from ngrok.com

simply use

ngrok http 3000

You will see the web address string that localhost binds to. So in the client javascript code, change

var socket = io.connect('http://localhost:3000');

to

var socket = io.connect('http://94349fe6.ngrok.io');

NOTE:

http://94349fe6.ngrok.io is just that web address string. Yours will be different from this one.

EDIT AGAIN:

actually, if one simply does:

var socket = io();

“it defaults to trying to connect to the host that serves the page”

So it works as well.

Answers:

Yes. If your node app is working off of port 3000 like in your example then just use ngrok to create a reverse proxy to expose 3000 to the world. Websockets will work just fine with it.