javascript - 客户端 Javascript 服务器 - 可能吗?

标签 javascript networking

美好的一天,社区。

接下来的问题是:是否可以在客户端 javascript 上运行简单的 HTTP 服务器,它能够从全局网络接收请求并以某种方式处理它们?

例如,在 node.js 中,我可以使用以下代码运行服务器:

var http = require('http');
http.createServer().listen(3000, '127.0.0.1');

然后我将在 127.0.0.1:3000 上运行服务器,我想知道是否可以使用常规客户端 javascript 实现与此类似的东西?

最佳答案

“客户端”和“服务器”的定义是相对的。节点在向客户端发送数据时可以是服务器; Node 应用程序也可以是另一个服务器的客户端(例如,当您进行 API 调用时)。

听起来你在问是否可以在浏览器中使用 JS 创建一个“服务器”。你不能,但那是因为大多数浏览器被设计为仅作为客户端,而不是服务器 — 它们只能发出请求,而不能响应它们。特别是,Node 本身连接到系统级套接字,这使其成为服务器。浏览器不允许您的 Javascript 代码访问那些系统级套接字,这就是为什么这是不可能的。

假设,如果他们这样做了,那么您最终会回到 Node。或者重新创建您自己的 Node 版本。

请注意,您的浏览器中确实有 WebSockets;任何其他“客户端”都可以位于该套接字的“另一侧”。因此,您可以通过这种方式实现基本的客户端/服务器设置,但它不适用于其他 HTTP 客户端。

关于javascript - 客户端 Javascript 服务器 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39691268/

相关文章:

javascript - 调用 $scope.$apply 时 AngularJS View 不更新

javascript - 如何在正则表达式中允许 a-z 0-9 和破折号

android - 无法在 adb usb 和 adb tcp 模式之间成功切换

python - 在 Vagrant 中访问端口 5000 时遇到问题

php - 如何使用 PHP 监听 TCP 端口?

linux - 计算 TCP 重传

javascript - Meteor APK 显示白屏,没有任何反应

子弹出窗口关闭时父页面上的javascript警报

javascript - 触发不存在的 jQuery 事件和性能

Azure - 虚拟网络网关与 VPN 网关