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

客户端Javascript服务器-可能吗?,javascript,networking,Javascript,Networking,好日子,社区 下一个问题是:是否可以在客户端javascript上运行简单的HTTP服务器,从而能够接收来自全局网络的请求并以某种方式处理它们 例如,在node.js中,我可以使用以下代码运行服务器: var http = require('http'); http.createServer().listen(3000, '127.0.0.1'); 然后我会让服务器运行在127.0.0.1:3000,我想知道类似的东西是否可以用常规的客户端javascript实现?客户端和服务器的定义是相对的

好日子,社区

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

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

var http = require('http');
http.createServer().listen(3000, '127.0.0.1');
然后我会让服务器运行在
127.0.0.1:3000
,我想知道类似的东西是否可以用常规的客户端javascript实现?

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

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

假设,如果他们这样做了,那么你就会回到节点。或者重新创建自己版本的节点

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