我使用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/

10-12 13:50