为了账号安全,请及时绑定邮箱和手机立即绑定

节点(或其他语言)中是否有用于基于网络的应用程序的“中间件”库?

节点(或其他语言)中是否有用于基于网络的应用程序的“中间件”库?

Go
跃然一笑 2021-12-27 15:57:24
我想在 node.js 中编写几个 tcp 服务器/客户端。我试图弄清楚 node.js 生态系统提供了什么来使这种开发更容易。我正在考虑类似于(java)netty 的部分内容。该项目提供了一种实现协议的方法,可以将其插入网络代码管道或从实际的 tcp 连接代码中取出以进行独立测试。Node 的 http 框架通常提供一个中间件层。用户可以编写代码来拦截请求或响应以隔离功能位,因此实际的请求/响应接口不会发生太大变化。这会导致此类代码的第 3 方提供者进行日志记录、身份验证等。对于较低级别的网络代码是否存在类似的东西?(由于我测试了一些想法,如果有人知道其他提供此类功能/库的非 java/c++/c# 语言,我也想阅读它们)
查看完整描述

2 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

既然你标记了 Elixir,我就咬一口。

虽然 Elixir 有一个很好的框架来为 HTTP 客户端(插件)构建这样的东西,但我考虑的一个选项是使用vegurranch_proxy_protocol库(由 Heroku 用 Erlang 编写,但在 Elixir 中很容易使用),vegur提供了一个可插入的中间件层,它们是易于隔离测试。我目前将它用于我公司的代理层。

即使没有这些,使用构建这样的应用程序ranch也是非常简单的。Ranch 处理套接字的侦听/接受/读取/写入,您可以在需要的地方插入可插拔管道,并使用行为(Erlang/Elixir 等价于接口)强制执行。

这些类型的应用程序几乎是 Erlang 和 Elixir 的最佳选择,如果您熟悉或对其中任何一个感兴趣,我强烈推荐它。


查看完整回答
反对 回复 2021-12-27
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

不知道有很多现成的东西可用,但对于实际的中间件模式本身,还有洁具这是在任何JavaScript环境中使用(节点,浏览器),而不是连接到HTTP通用中间件。


查看完整回答
反对 回复 2021-12-27
  • 2 回答
  • 0 关注
  • 220 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号