简体   繁体   中英

using ngrok with websocket (or socket.io)

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)

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.

Try using LocalTunnel:

Usage: lt --port [num] <options>

https://www.npmjs.com/package/localtunnel

( Self-answer moved from the question into the answers section )

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.

Actually, if one simply does:

var socket = io();

as the introduction to socket.io states:

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

So it works as well.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM