javascript - 是否有可能编写一个在现代浏览器如 Chrome、Firefox、IE、Safari 中运行的网页服务器?
在Substratum首次代币发行(ICO)中,白皮书谈到了通过允许主机成为网络主机来解决当前互联网的问题。
根据对白皮书的阅读,团队似乎打算编写可以在任何现代浏览器(IE、Safari、Chrome、Firefox)上运行的Javascript,并且可以在任何平台(Windows、Linux 等)上运行,将其变成一个网络服务器。
由于白皮书非常笼统,我不确定团队的 Javascript 是否也在以某种形式使用 uPnP 技术,让最近的路由器将 80 端口转发到正在 Web 服务器上运行的(假定的)浏览器中。
有没有人了解当前的网页浏览器是否能够:
- 提供可以告诉路由器进行端口转发的uPnP访问吗?
- 使用 Javascript 运行一个网页服务器?
谢谢。(我熟悉一般编程,只是不太了解当前网页浏览器的功能。请将回答限制在网页浏览器的功能范围内。)
答案#1
网络浏览器通常无法像 Web 服务器那样接收 HTTP 请求,但它可以通过 WebRTC 与其他浏览器发送和接收消息。PeerServer 项目通过这种方式在浏览器中模拟了一个 Web 服务器,使用一个浏览器作为“客户端”,另一个作为“服务器”。
有一些 JavaScript 库,例如 nohost,会使用 Service Worker 在客户端模拟文件服务器。这显然是可能的,因为 Service Worker 能够向 HTTP 请求发送自定义响应。
甚至可能在浏览器中通过 JavaScript 的 x86 模拟器运行 Linux 服务器,但我不知道是否已经有人这样做了。由于浏览器无法直接接收 HTTP 请求,服务器需要使用反向代理隧道才能与客户端连接。