Kau*_*l28 5 javascript node.js localtunnel koa
我使用localtunnel已经有一段时间了,现在我想知道它是如何工作的。这是我读过的一篇文章,它解释了相同的内容。
以下是我从上面的文章中不明白的一些术语:
localtunnel 服务器在随机生成的大于 1023 的端口上启动一个新的 TCP 服务器
如何在服务器中触发另一台服务器?
如果 localtunnel 客户端能够连接到 localtunnel 服务器随机生成的 TCP 端口,默认情况下它会向服务器打开 10 个 TCP 套接字。
当客户端可以在需要时通过点击某些特定 URL 连接到服务器时,打开与服务器的 TCP 套接字的目的是什么?
我也尝试从它的Github 存储库中读取代码,但是理解基本概念太复杂了,因为我是 Nodejs 及其框架的初学者。
任何基本的解释都会有所帮助!
这是本地隧道中涉及的所有服务的图表,按主机分组。
localhost: [localtunnel client] --- [HTTP client] --- [your server]
| |
| |
localtunnel host: [express server] --- [TCP server]
|
|
internet user: [app]
Run Code Online (Sandbox Code Playgroud)
基本上,当您lt --port 8000在控制台中键入时,它会启动localtunnel 客户端。这将连接到位于云中的快速服务器。此快速服务器为您提供应用程序应连接的地址。然后它启动侦听来自您的应用程序的连接的tcp 服务器。tcp 服务器还与 localtunnel 客户端打开 10 个套接字,用于发送数据。当连接来自应用程序时,tcp 服务器将数据发送到 10 个套接字之一上的 localtunnel 客户端。然后数据通过管道传送到本地http 客户端,该客户端向您的服务器发出请求。
回答您的问题:
如何在服务器中触发另一台服务器?
node.js 服务器可以使用child_process启动其他进程。
当客户端可以在需要时通过点击某些特定 URL 连接到服务器时,打开与服务器的 TCP 套接字的目的是什么?
在这里,您将 localtunnel 客户端与 Internet 客户端(我图中的应用程序)混淆了。TCP 服务器需要保持 2 个连接:一个与外界(应用程序)连接,一个与localtunnel 客户端连接。文中提到的10个socket是连接localtunnel客户端,用于发送数据。