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

问题描述:

伟大的一天,社区。客户端JavaScript服务器 - 可能吗?

问题是下一步:是,可以运行,这将能够接收来自全球的网络请求并以某种方式处理它们的客户端的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代码访问这些系统级套接字,这就是为什么它是不可能的。

可以想像,如果他们这么做,那么你最终会回到节点。或者重新创建你自己的节点版本。

注意,你在浏览器中的WebSockets;任何其他“客户端”可以位于该套接字的“另一侧”。所以你可以用这种方式实现一个基本的客户端/服务器设置,但它不适用于其他HTTP客户端。