【问题标题】:using ngrok with websocket (or socket.io)将 ngrok 与 websocket(或 socket.io)一起使用
【发布时间】:2015-09-28 01:32:21
【问题描述】:

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

换句话说,确实

ngrok http 3000

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

ngrok http+tcp 3000 (just wild guessing)

编辑:

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

简单地使用

ngrok http 3000

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

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

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

注意:

http://94349fe6.ngrok.io 就是那个网址字符串。你的会和这个不同。

再次编辑:

实际上,如果有人这样做:

var socket = io();

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

所以它也有效。

【问题讨论】:

  • 你应该添加你的解决方案作为答案并接受它,它会更清楚

标签: node.js websocket socket.io ngrok


【解决方案1】:

是的。如果您的节点应用程序在您的示例中使用端口 3000,那么只需使用 ngrok 创建一个反向代理以将 3000 暴露给世界。 Websockets 可以很好地使用它。

【讨论】: