.net WCF在node.js/Nginx堆栈中是如何工作的?
我在创建“类似web服务的应用程序”方面的经验来自开源世界,例如,我将Nginx设置为接收对服务器的请求,然后将这些请求传递给应用服务器,即CouchDB前面的反向代理或node.js web服务器,或者将这些请求定向到服务器上包含html文件或PHP脚本等的位置 使用上述方法,很容易设置端点并逐个处理每个端点。例如,如果我想每5分钟处理一次从传感器到.net WCF在node.js/Nginx堆栈中是如何工作的?,.net,wcf,.net,Wcf,我在创建“类似web服务的应用程序”方面的经验来自开源世界,例如,我将Nginx设置为接收对服务器的请求,然后将这些请求传递给应用服务器,即CouchDB前面的反向代理或node.js web服务器,或者将这些请求定向到服务器上包含html文件或PHP脚本等的位置 使用上述方法,很容易设置端点并逐个处理每个端点。例如,如果我想每5分钟处理一次从传感器到https://example.com/sendSensorData,我在端口9000上创建了一个node.js应用程序,通过Nginx/Cadd
https://example.com/sendSensorData
,我在端口9000上创建了一个node.js应用程序,通过Nginx/Caddy/Apache/etc将web请求传递给localhost:9000,然后编写node.js代码以查找带有sendSensorData
路径的请求,然后编写代码以处理我希望到达该端点的数据。因为我将使用HTTP,所以我将使用node.js HTTP库来实际发出请求,这反过来处理OSI堆栈的细节,类似于.NET绑定(我认为)
我想我理解了WCF的观点(从长远来看,它更容易维护,开发更复杂的系统更快,而且可能还有安全方面的好处),但现在我正在努力理解WCF web服务实际上在做什么
从抽象的角度来看,有很多关于WCF是什么的信息,但是要找到关于细节的适当信息就不那么容易了
我发现有材料提到它用于创建API,可根据数据交换格式、网络协议和端点结构进行配置。i、 e.您可以在以下方面轻松地为单个服务配置多个端点:
- 可以在其上联系您的服务的地址
- 绑定-即OSI内容,如传输协议、编码、SSL等
- 合同。。。数据格式(JSON/XML)、数据结构(类型)、网络响应?数据有效负载期望值等
App.Config
的XML文件中配置的。在我的具体案例中,这个文件包含在一个控制台应用程序中,它启动了长期存在的WCF进程(我认为)。在配置文件中,有4个服务
块和一个绑定
块。因此,我假设有四个服务都使用相同的绑定堆栈(我认为在.NET中通过配置定义OSI堆栈的细节非常酷,如果bindings指令允许的话)。每个服务都有自己的行为
块(只是拼写错误为行为
)
我现在正试图找出契约,它似乎涉及到用属性(类、属性等)进行装饰,并以这样一种方式包括项目引用,即允许.NET framework为您构建端点,而无需任何额外工作
这是正确的吗?或者,将我上面提到的简单node.js示例与类似的.NET WCF应用程序进行比较的更好方法是什么?实际问题是什么?首先,OSI堆栈是不存在的——该模型在2000年之前用于描述网络,但在所有网络实际成为TCP后就被放弃了。这反映在2000年后坦南鲍姆的书中。WCF发布SOAP服务,即HTTP端点,就像任何其他web服务器一样。内容遵循SOAP、WS*标准,就像任何其他符合SOAP的堆栈一样。契约等是SOAP的一部分。此外,WCF实际上可以使用许多不同的机制发布端点——命名管道、MSMQ、HTTP等。我认为您可能正在寻找的是“WebAPI”,它比WCF简单得多,是为快速实现REST样式的HTTP Web服务而设计的。与您以前使用的更加紧密地结合起来。BTW node.js在HTTP服务方面与WCF基本相同-只是一个web服务器,与OSI无关。实现相同SOAP标准的不同方式。@PanagiotisKanavos,我真的怀疑所有网络都是TCP。。。但除此之外,当你说“SOAP标准”时,这与HTTP协议有什么关系?据我所知,SOAP是一种位于HTTP之上的协议——也就是说,如果您想使用一些使用HTTP的web服务,那么SOAP是构建信息结构的好方法。但似乎完全可以在没有SOAP的情况下使用HTTP。具体来说,node.js实现了什么SOAP标准?在我看来,符合REST的服务不必实现SOAP