从网络/TCP/HTTP 连接的角度来看,Node.js 是如何工作的? WCF 可以模拟这个吗?

     2023-05-07     294

关键词:

【中文标题】从网络/TCP/HTTP 连接的角度来看,Node.js 是如何工作的? WCF 可以模拟这个吗?【英文标题】:How does Node.js work from a network / TCP / HTTP connection perspective? Can WCF emulate this? 【发布时间】:2011-07-14 14:01:03 【问题描述】:

我的理解是 node.js 是一个面向 Linux 世界的 python 应用程序。每个人似乎都对它处理许多并发连接的速度和能力感到非常满意。

我来自 Microsoft 背景,我认为 node.js 可能能够使用 WCF 实现。

谁能告诉我 node.js 如何在网络背景下运行,并可选择提供是否可以将其移植到 WCF 或 Azure 服务总线的见解?

【问题讨论】:

@Toby - “节点”的服务器部分不是 Python 应用程序吗?查看楼一伦的回复here node 是 V8 JavaScript 引擎的事件 i/o 层,用 C++ 编写 【参考方案1】:

Node 是一个 Javascript 框架,偏爱需要事件驱动的方法来编写网络服务。 Node 不是阻塞网络操作(通常是网络编程的方式),而是为您提供在有趣的事情发生时触发的事件处理程序(客户端连接、字节到达、DNS 查询返回等)。

因此,Node 非常适合 realtime web apps,并且正在被广泛探索。由于它是一个 Javascript 框架,现在可以使用用于 Node 的 host of interesting libraries。其中一些隐藏在very cute API 后面的不可思议的力量。

有binary versions of Node for Windows,但它们还没有被认为是稳定的。 Node 比 WCF/Azure 低得多——它是套接字、DNS、HTTP 等的事件驱动包装器。如果你愿意的话。除了事件驱动之外,它不强制要求应如何实施网络服务(例如合同或数据编组)。我相信在这些技术之上实现 Node 克隆会损害低延迟(至少),但也许更有资格的人可以判断它是否可以做到。

PS。 The Node website 很好地解释了它是如何工作的。

PPS。可能相关的,虽然我没有时间阅读很多关于它的信息,是Rx for .NET。

【讨论】:

由于 Node 在低于 HTTP 的层上工作,所以当涉及代理时,我预计会出现大量问题......这些设备对 TCP 会话的构建方式和信息非常挑剔包含在 HTTP 标头中。这听起来对你吗? ...您会期望 node.js 和代理会出现问题吗? 我不会 - Node 也内置了对 HTTP 的支持,它不仅仅是普通的 TCP/UDP。 Connect 和 Express 库可以提供基本 http 模块没有的附加功能(会话、提供静态文件、基本身份验证)。见this question。【参考方案2】:

Node.js 是一种(非常不错的)编程模型,它利用 Javascript 的异步编程非常适用于实现异步 Web 应用程序。该原理与 Windows 上的异步编程模型非常相似,尤其是在 .NET(WCF 很好地支持这一点)中,所有工作都在由 I/O 线程调用的回调上完成,并且应用程序从不锁定线程。 Node.js 围绕这个基础机制创建了一个严格的 JS 编程模型,以允许更好地扩展应用程序。因此,与这里的一些人所说的相反,Node.js 与 WCF 完全处于同一层/级别。从协议的角度来看,Node.js 实现可能始终位于应用程序和底层 HTTP 基础设施提供的 HTTP 侦听器之间。

【讨论】:

02网络面经:一个tcp连接可以发送多少个http请求?

一个TCP连接可以发送多少个HTTP请求?就这这个问题,我们聊聊TCP、HTTP以及浏览器之间的关系和对请求处理的优化。TCP与HTTP的渊源我们知道TCP协议对应于传输层,HTTP协议对应于应用层。WEB项目中,HTTP协议是建立... 查看详情

02网络面经:一个tcp连接可以发送多少个http请求?

一个TCP连接可以发送多少个HTTP请求?就这这个问题,我们聊聊TCP、HTTP以及浏览器之间的关系和对请求处理的优化。TCP与HTTP的渊源我们知道TCP协议对应于传输层,HTTP协议对应于应用层。WEB项目中,HTTP协议是建立... 查看详情

一文搞懂如何使用node.js进行tcp网络通信

​​​​​​摘要: 网络是通信互联的基础,Node.js提供了net、http、dgram等模块,分别用来实现TCP、HTTP、UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录。本文分享自华为云社区​​《一文搞懂如何使用Node.js进... 查看详情

一篇搞懂tcp,http,socket,socket连接池之间的关系

...、区别及原理并不是所有人都能理解清楚,这篇文章就从网络协议基础开始到Socket连接池,一步一步解释他们之间的关系。首先从网络通信的分层模型讲起:七层模型,亦称OSI(OpenSystemInterconnection)模型。自下往上分为:物理层、... 查看详情

数据中心网络架构—vpc虚拟专用云

目录文章目录目录VPC(虚拟私有云/网络)从服务的角度来看VPC是一种服务从技术的角度来看VPC是一种网络模式VPC的实现原理公有云基于Overlay技术提供的VPCVPC的接入方式示例:利用SD-WANCPE接入公有云VPCVPC(虚拟私有云/网络)VPC(... 查看详情

一文搞懂如何使用node.js进行tcp网络通信(代码片段)

摘要: 网络是通信互联的基础,Node.js提供了net、http、dgram等模块,分别用来实现TCP、HTTP、UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录。本文分享自华为云社区《一文搞懂如何使用Node.js进行TCP网... 查看详情

一篇搞懂tcp,http,socket,socket连接池之间的关系(代码片段)

...别及原理并不是所有人都能理解清楚,这篇文章就从网络协议基础开始到Socket连接池,一步一步解释他们之间的关系。七层网络模型​首先从网络通信的分层模型讲起:七层模型,亦称OSI(OpenSystemInterconnection)模型... 查看详情

站在ta的角度来看html,认识会大不一样

TA就是,HTML解释器从WebKit内核的HTML解释器的角度来看HTML。了解HTML文档是如何从字节流,一步步到DOM树的。理解这个过程,很多前端开发时一知半解的问题都能够很好地理解了。总览解释过程首先HTML解释器接受到的是字节流(By... 查看详情

从内存分配的角度来看 ArrayList 与 LinkedList

】从内存分配的角度来看ArrayList与LinkedList【英文标题】:ArrayListvsLinkedListfrommemoryallocationperspective【发布时间】:2012-07-1820:16:43【问题描述】:我需要存储大量信息,例如java列表中的“名称”。项目的数量可以改变(或者简而言... 查看详情

无法从角度连接 laravel 网络套接字

】无法从角度连接laravel网络套接字【英文标题】:couldnotconnectlaravelwebsocketfromangular【发布时间】:2019-09-2319:06:00【问题描述】:从源“http://localhost:4200”访问“http://localhost:8080/socket.io/?EIO=3&transport=polling&t=MgBuvgw”处的XMLHtt... 查看详情

socket,tcp,http三者之间的区别和原理

http、TCP/IP协议与socket之间的区别网络由下往上分为:物理层--数据链路层--网络层--IP协议传输层--TCP协议会话层--表示层和应用层--HTTP协议1、TCP/IP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无... 查看详情

优化条件/if 块,从性能的角度来看,啥是可取的?

】优化条件/if块,从性能的角度来看,啥是可取的?【英文标题】:Optimizingconditionals/ifblocks,whatispreferablefromaperformancepointofview?优化条件/if块,从性能的角度来看,什么是可取的?【发布时间】:2015-12-1310:41:24【问题描述】:我... 查看详情

优化条件/if 块,从性能的角度来看,啥是可取的?

】优化条件/if块,从性能的角度来看,啥是可取的?【英文标题】:Optimizingconditionals/ifblocks,whatispreferablefromaperformancepointofview?优化条件/if块,从性能的角度来看,什么是可取的?【发布时间】:2015-12-1310:41:24【问题描述】:我... 查看详情

从编码人员的角度来看文件权限

】从编码人员的角度来看文件权限【英文标题】:Filepermissionsfromacodersperspective【发布时间】:2016-02-1000:04:23【问题描述】:文件权限是仅存储在HDD(或其他存储介质)上并受到操作系统尊重的东西。或者硬盘驱动器是否以某种... 查看详情

协议1tcp,http,socket协议介绍

...因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端... 查看详情

从任何角度来看 ++i 和 i+=1 有啥区别

】从任何角度来看++i和i+=1有啥区别【英文标题】:whatisdifferencebetween++iandi+=1fromanypointofview从任何角度来看++i和i+=1有什么区别【发布时间】:2013-08-2713:07:31【问题描述】:这是来自knking的c编程的一个问题:一种现代方法。看不懂... 查看详情

从配置管理的角度来看,在自动化构建中要做的最好的事情是啥?

】从配置管理的角度来看,在自动化构建中要做的最好的事情是啥?【英文标题】:Bestthings,fromaConfigurationManagementperspective,todoinanautomatedbuild?从配置管理的角度来看,在自动化构建中要做的最好的事情是什么?【发布时间】:2010... 查看详情

iOS 5 推送通知 - 从开发的角度来看

】iOS5推送通知-从开发的角度来看【英文标题】:iOS5PushNotification-FromDevelopingperspective【发布时间】:2011-11-0105:08:25【问题描述】:我在观看iOS5推送通知的视频时发现,除了徽章、警报和声音之外,通知用户存在一些差异。请通... 查看详情