与节点服务器的Socket.io连接

时间:2018-02-02 05:39:51

标签: express socket.io

如果浏览器具有节点运行时,那么它是否还包含express和socket.io库?如果是这样,那么你不能在浏览器上下文中实例化一个http服务器吗? 我的意思是 - 浏览器中的套接字是否始终充当“客户端” - 并与后端服务器通信?

由于 AV

2 个答案:

答案 0 :(得分:0)

Chrome浏览器使用V8引擎编译和运行JavaScript。 Node.js使用相同的V8引擎。但这并不意味着浏览器具有节点,也不包括运行快速服务器所必需的某些模块,如http。

答案 1 :(得分:0)

  

如果浏览器具有节点运行时

这不是浏览器的含义。它没有节点运行时。

Chrome浏览器使用V8引擎运行Javascript。那不是运行时库。这只是使原始语言运行的Javascript解释器。然后,浏览器会添加一个特定于浏览器的东西库,例如DOM库和各种浏览器特定的接口,如XMLHttpRequest等。

node.js也使用相同的V8引擎进行原始语言支持。但是,然后node.js添加了自己的运行时库(这是http库所在的位置),并且这些库不以任何方式存在于浏览器中。

  

如果是这样,那么你不能在浏览器上下文中实例化一个http服务器吗?

不,你不能。

  

我的意思是 - 浏览器中的套接字是否始终充当“客户端” - 并与后端服务器通信?

浏览器有两种与外部服务器通信的主要方式。他们可以发出http请求(通常在浏览器的上下文中称为Ajax请求)。或者,他们可以与另一台服务器建立webSocket连接,并通过webSocket交换消息。浏览器永远是客户端。它会启动与某个服务器的连接。外部代理无法“连接到用户的浏览器”。相反,浏览器必须连接到外部代理。