有没有简单的示例代码展示在本地主机上运行的node.js下的ngrok转发socket.io/websocket?
换句话说,是否存在这样一种情况
ngrok http 3000
与运行在3000端口上的Node.js服务器和Socket.io一起工作?或者类似的东西
ngrok http+tcp 3000 (just wild guessing)
是的。如果您的节点应用程序正在使用端口3000(如您的示例中所示),则只需使用ngrok创建反向代理将3000暴露给全世界即可。Websockets将与其完美配合。
(自问自答从问题移至答案部分)
只需简单使用
ngrok http 3000
您将看到本地主机绑定的Web地址字符串。因此,在客户端JavaScript代码中,请更改
var socket = io.connect('http://localhost:3000');
to
var socket = io.connect('http://94349fe6.ngrok.io');
注意:
http://94349fe6.ngrok.io
只是一个网址字符串,你的与此不同。
实际上,如果只是执行以下操作:
var socket = io();
因此,它同样有效。默认情况下,它会尝试连接到提供页面的主机。
ws://
或者 wss://
。 - Robo Robokngrok tcp 3000
//and hit you Socket API endpoint like:
tcp.ngrok.io:15819/api/v1/partner/profile?partner_id=27