问题标签 [request-response]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
43 浏览

scala - Scala Akka Typed - 使用 ask 在行为内部发送请求

我对 akka typed 有点陌生,我试图发送一条需要在给定时间内回答的消息。
我发现了带有 ask 的请求-响应模式,这看起来很有趣,但是有没有办法在已经定义的 Behaviours.receive 中实现它?

这里的想法是每次玩家回答或超时后调用 nextPlayerTurn

在这种情况下,在发送 YourTurnMsg 之后,玩家应该使用停止计时器的 GuessMsg 进行响应,这永远不会发生,因为在执行裁判内部匹配的情况下,而不是成功(它总是在超时后给出失败) .

我是否对询问模式有错误的想法,应该只使用计时器做出新的行为?

0 投票
0 回答
127 浏览

c# - 如何使用 Autofac 在 MassTransit 中注册 GenericRequestClient

我正在使用 MassTransit,需要使用请求/响应流。我还使用 Autofac 注册所有 MassTransit 的东西,如下所示:

我在文档中读到我必须像这样注册 IRequestClient<> :

但是我不是只有一个 RequestClient,而是会有很多,并且想使用 Autofac 自动注册它们。

有 x.AddGenericRequestClient() 之类的东西,但它仅在使用 Microsoft DI 容器时才有效,并且当我尝试将此扩展的行为复制到 Autofac 中时,它不起作用,因为它说 ScopedConsumeContextProvider 未注册...

那么如何将多个可以在多个程序集中的 RequestClients 注册到 Autofac 中呢?

0 投票
1 回答
33 浏览

javascript - 访问数据库后更改 DOM

我正在使用 php 中的 PDO 库来访问数据库并将一些值返回到需要在用户首次打开网页时显示的表中,

在此之后,我想实现一个过滤器选项,以便用户可以在表单字段中输入一些数据,并根据用户设置的过滤器更新显示的数据。

我不知道在这种情况下如何更新 DOM,是否可以使用 Jquery 更新 DOM,以便表中只显示新值,或者我需要重定向到新页面/重建我的表具有完整的请求/响应周期。

无论如何,感谢您的帮助。

0 投票
1 回答
297 浏览

c# - MassTransit - 从请求响应中获取响应正常,但从跳过的队列中添加和删除消息?

我看不出有什么可以说这是正常行为,所以如果我是盲人请见谅。在使用带有请求-响应的 MassTransit 时,我看到了一些奇怪的东西。

所以我在一个服务上有多个消费者,它们监听不同的请求来执行简单的任务,比如从数据库中获取数据。

为了测试每个消费者,我创建了一个控制台应用程序,它为每个消费者执行请求并检查响应。

我注意到的是第一个请求响应工作正常,但是当代码运行下一个检查响应时,响应被接收,但消息随后被移动到跳过的队列并被删除。

这是第二个请求的公共交通日志。

发送

[2021-05-14 10:27:11.812 DBG] (MassTransit.)-发送 rabbitmq://192.168.0.25/Ksrs.Requests:ConceptByConceptNoRequest d9360000-cf5b-480f-418f-08d916ba7421 Ksrs.Requests.ConceptByConceptNoRequest

收到

[2021-05-14 10:28:00.203 DBG] (MassTransit.ReceiveTransport.)-RECEIVE rabbitmq://192.168.0.25/DESKTOP99KLG9M_Tests_bus_5r5yyygxmpry6jgtbdctpqurrb?temporary=true d9360000-cf5b-480f-2626-08 MessageHandler<Ksrs.Response.ConceptResponse>(00:00:00.0004546)

跳过?

[2021-05-14 10:28:41.361 DBG] (MassTransit.ReceiveTransport.)-SKIP rabbitmq://192.168.0.25/DESKTOP99KLG9M_Tests_bus_5r5yyygxmpry6jgtbdctpqurrb?temporary=true d9360000-cf5b-480f-ce25-08df19

不明白skip的时候还是得到响应,响应如预期,代码可以继续。

这是客户端请求和响应代码,对于我的所有检查来说几乎相同。唯一的区别是请求-响应类型。

只是一些注释:

使用 Autofac 作为容器。

使用 Serilog 进行日志记录。

使用 RabbitMQ (3.8.16) 作为消息代理。

更新:所以发现了一些有趣的东西。我向每个消费者添加了以下日志记录行,所以我知道正在运行。

现在假设我有 Consumer1、Consumer2 和 Consumer3。我在日志中看到了这一点。

请求消费者 1
SEND blah blah
RECIEVE blah blah
请求消费者 1
请求消费者 2
SEND blah blah
RECIEVE blah blah
请求消费者 1
请求消费者 3
SEND blah blah
RECIEVE blah blah
SEND blah blah
RECIEVE blah blah

所以看起来消费者 1 一直在执行,但我不明白为什么如果每个消费者的消息类型不同并且客户端没有调用它。

0 投票
1 回答
148 浏览

c# - 使用 C# 在 Artemis 上发送请求响应消息

我正在尝试使用 ArtemisNetClient 在 C# 中实现请求响应模式,但是在真正的解决方案中找出如何以更通用的方式执行此操作时遇到了一些麻烦。

基于一些 Java 示例,我能够在两个控制台应用程序中执行类似的操作:

发件人

接收者

这按预期工作,但我希望在本文中描述更多内容,除了它没有任何请求响应模式的示例。

详细地说,我目前有两个要通信的服务。

服务 1中,我想创建并发布一条消息,然后等待响应以丰富实例对象并将其保存到数据库中。我目前有这个,但它缺少等待响应消息。

我想我可能需要在其中设置一个临时队列/连接或其他东西PublishAsync()并将其更改为例如Task<Message>支持返回响应消息。但是我该怎么做呢?我是否必须像控制台应用程序示例中那样做一个新的 connectionfactory +CreateConsumerAsync等?

服务 2中,我有一个InstanceCreatedConsumer接收消息的,但它再次缺少返回响应消息的方法。

我想我也许可以ActiveMqExtensions用 a 扩展类,ConsumeAsyncHandleMessage用返回值处理响应消息,但我还没有做到这一点。

我在这里尝试实现的目标是完全错误的,还是使用 ArtemisNetClient 是不可能的?

也许有人有一个例子或者可以确认我是否走在正确的道路上,或者我应该使用不同的框架。

我是通过 ActiveMQ Artemis 等消息进行这种通信的新手,因此不胜感激。

0 投票
0 回答
81 浏览

c# - HttpWebRequest.GetRequestStream() 不适用于 TEST 项目

下面是我进行 API 调用的代码,并且我从 API 调用(Satus:200)成功获得了结果。我想为相同的场景添加一个 Unite 测试用例,但是我看到 API 调用在我的 Unit 测试用例中失败,它返回 503 服务器不可用或httpWebRequest.GetRequestStream()在代码中调用 ( ) 时超时。但是同样的 API 调用在我的主应用程序中运行良好,N + 次成功,下面是代码

我的单元测试用例方法

FetchToken方法在我的主应用程序中运行良好,它仅在单元测试用例中引起问题我已经检查了所有必要的 API 端点,并且应用程序和单元测试用例配置的凭据都已到位,并且相同。

0 投票
0 回答
36 浏览

android - 在移动设备上从我的前端本地向后端发出请求的问题

我正在本地开发一个应用程序,我的 React 前端在我的网络上的端口 4000 上运行,我的 Node 后端在我的网络上的端口 5000 上运行。 Macbook——包括登录、发布新数据、编辑数据等——但是当我通过网络打开我的 Pixel 2 上的应用程序以进行一些移动优化时,来自前端的登录和注册帖子什么都不做。这很奇怪,因为当我从移动浏览器点击端口 4000 时,前端的登录屏幕呈现得很好,而当我点击端口 5000 时,我从后端得到预期的 JSON 响应,所以手机显然连接到两者. 我在请求周期中添加了几个三元组来检查实际发生了什么,并且一切正常,直到最后.then当服务器的响应应该由前端处理时:

我在后端的控制器上也有一个console.log登录操作来显示该res对象 - 当我从我的 Mac 登录时,日志会很好地触发,但当我尝试从手机登录时根本不会触发。

有点不知所措,知道为什么这些帖子可以在我的 Mac 上运行但不能在移动设备上运行吗?想知道这可能是我的 MongoDB 数据库的某种权限问题还是什么?

0 投票
1 回答
221 浏览

apache-kafka - 使用 apache kafka 请求回复模式实现

如何使用 Apache Kafka 实现请求/回复模式?实施还应与服务实例的扩展(kubernetes 中的 fe pod)一起使用。

在 rabbit 中,我可以为每个接收来自其他服务的响应的实例创建临时的非持久唯一队列。当连接丢失时(当服务实例关闭时),此队列将自动删除。

我怎么能用卡夫卡做到这一点?如何扩展此解决方案?

我使用节点 js

0 投票
1 回答
139 浏览

.net-core - 使用 Kafka + .Net Core + MassTransit 实现请求响应模式

有人可以告诉我如何使用带有 .net 核心(2.1,2. 或 3.1)的 kafka 实现请求响应模式。我更喜欢使用轻量级消息总线 MassTransit 来实现这种模式。我无法在他们的文档中找到参考实现。可能是我错过了。有人可以分享一些使用 MassTransit 的标准参考实现。如果找不到,任何使用 Confluent Kafka 实现的示例(请求响应模式的实现)也很值得一看。

谢谢大家

0 投票
1 回答
127 浏览

.net-core - 为什么不建议使用 Kafka 实现请求/响应模式

有些人不建议在微服务世界中使用 kafka 来实现请求/响应模式。

但我还不清楚为什么不推荐它?同时,我看到 spring kafka 开箱即用地支持这种模式,而 .net 没有通过任何库(既不通过 confluent kafka 也不通过 MassTransit)开箱即用地提供此功能。如果不推荐通过 kafka,我们是否有任何其他标准方法可以通过 .net 核心实现这种情况。有人可以为我提供一个合理的技术答案来说服自己吗?

更新

我正在编辑我的问题以解释业务用例假设我需要显示我的帐户余额。我从前端向api控制器发出请求[http请求],然后会触发三个事件来获取储蓄账户余额/固定账户余额/活期账户余额。

这些事件将发布到三个 kafka 主题,然后由三个消费者监听。这些消费者分别处理请求并发布到另外三个主题。将等待初始 http 调用,直到这些主题被消耗。一旦它被消耗 http 调用响应前端。

应该等待 resultOneTask 和 resultTwoTask 直到响应主题被消耗。如果 resultOneTask 和 resultTwoTask 是 http 调用,则没有实现它的问题。此用例甚至还支持 RMQ。但我无法找到任何使用 confluent kafka 或 MassTransit for kafka 的标准实现。

提前致谢