使用ngrok with websocket(或socket.io)

Zhe*_* Hu 15 websocket node.js socket.io ngrok

是否有任何简单的示例代码显示ngrok转发socket.io/websocket(在localhost上的nodejs下运行)?

换句话说,是吗

ngrok http 3000
Run Code Online (Sandbox Code Playgroud)

使用在端口3000上运行的nodejs服务器和socket.io?或类似的东西

ngrok http+tcp 3000 (just wild guessing)
Run Code Online (Sandbox Code Playgroud)

编辑:

在ngrok.com的帮助下回答我自己的问题

简单地用

ngrok http 3000
Run Code Online (Sandbox Code Playgroud)

您将看到localhost绑定到的Web地址字符串.所以在客户端的javascript代码中,改变

var socket = io.connect('http://localhost:3000');
Run Code Online (Sandbox Code Playgroud)

var socket = io.connect('http://94349fe6.ngrok.io');
Run Code Online (Sandbox Code Playgroud)

注意:

http://94349fe6.ngrok.io就是那个网址.你的不同之处.

再次编辑:

实际上,如果只是一个人:

var socket = io();
Run Code Online (Sandbox Code Playgroud)

"它默认尝试连接到为页面提供服务的主机"

所以它也有效.

小智 8

是的。如果您的节点应用程序像您的示例一样在端口 3000 上工作,那么只需使用 ngrok 创建一个反向代理以向世界公开 3000。Websockets 可以很好地使用它。