我使用localtunnel已经有一段时间了,现在我想知道它是如何在后台运行的。 Here是我读过的一篇文章,对此进行了解释。
以下是上一篇文章中我不理解的一些术语:
如何触发服务器中的另一台服务器?
当客户端可以在需要时通过点击某些特定的URL来连接到服务器时,用服务器打开TCP套接字的目的是什么?
我还尝试从Github repository中读取代码,但是由于我是Nodejs及其框架的初学者,它很难理解基本概念。
任何基本解释都会有所帮助!
最佳答案
这是按主机分组的本地隧道中涉及的所有服务的图。
localhost: [localtunnel client] --- [HTTP client] --- [your server]
| |
| |
localtunnel host: [express server] --- [TCP server]
|
|
internet user: [app]
基本上,当您在控制台中键入
lt --port 8000
时,它将启动 localtunnel客户端。这将连接到位于云中的 express 服务器。该Express服务器为您提供了应用程序应连接的地址。然后,它将启动 tcp服务器,以监听来自您的应用程序的连接。 tcp服务器还使用localtunnel客户端打开10个套接字,用于发送数据。当连接来自应用程序时,tcp服务器会将数据发送到10个套接字之一上的localtunnel客户端。然后,将数据通过管道传输到本地 http客户端,该客户端将请求发布到服务器的 。要回答您的问题:
node.js服务器可以使用child_process启动其他进程。
在这里,您将localtunnel客户端与Internet客户端(我的图中的应用程序)混淆了。 TCP服务器需要保持2个连接:一个与外界(应用程序)连接,另一个与localtunnel客户端连接。本文中提到的10个套接字是与localtunnel客户端的连接,用于发送数据。
关于javascript - 本地隧道如何在后台运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53170115/