问题标签 [event-based-programming]
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.
node.js - Node.js 非阻塞行为的新手查询
一直在关注这个精彩的教程。作为 Javascript 和函数式编程的新手,我想了解非阻塞的本质含义。我故意在我的 JS 代码中添加了 10 秒的“睡眠”,以实现阻塞行为。
此代码被用作另一个“服务器”脚本的回调,我从浏览器调用该脚本。我希望一旦我同时向我的服务器脚本发出 100 个请求,我会在 10 秒后得到并行的 100 个响应。但是这段代码会一一遍历请求。这肯定失败了 node.js 背后的哲学,对吗??当我在 Java servlet 中编写如此糟糕的代码并在 Tomcat 上运行时,这甚至不会发生!
在这种情况下的另一个观察结果是请求没有按时间顺序处理 - 它们是随机执行的。这对我来说听起来不太好!!
我相信我的代码存在一些问题 - 请帮助我理解这里的概念,并回答我的 2 个查询(另一个关于年表的查询)。
谢谢 !
multithreading - 在 Scala 演员中集成自主和反应行为的最佳方式?
我是一位经验丰富的 Java 程序员,我开始开发基于 actor 的 Scala 应用程序。在我目前正在开发的应用程序中,我必须处理表现出自主和反应行为的 Sender Actor 的实现。场景如下(伪代码):
我的问题是:对于需要集成自主性和反应性(如本文所述)的 Scala 演员来说,表达自主行为的最佳方式是什么?
换句话说,在上面的示例中,对 Sender 演员进行编码的最佳方式/风格是什么?
我想出了一个解决方案(在下面报告),但由于我不是 scala 大师(还 :))我想知道我所实施的是否可以在更好/更好的解决方案中得到改进。
特别是在我当前的实现中困扰我的是,为了能够对从 StopNotifier 接收到的 STOP 消息迅速做出反应,我需要在 Sender 的每个执行步骤(即在将 A、B 发送到 Stdout 演员)。在我看来,做事情的正确方法太棘手了:)。
我还尝试使用其他 Scala 语言结构(例如异步发送、反应等)开发其他解决方案,但在我看来,它们似乎受到其他问题/技巧的影响。
有没有人有更好的解决方案来处理 scala 演员中自治和反应行为的整合?
webserver - websockets如何保持持久连接以及在现场使用它有多稳定?
我需要一个基于事件的服务器,可以轻松地将数据推送到客户端。正如我在论坛中读到的那样,基于 websocket 的服务器是我最好的选择。请解释它的工作原理以及它在生产盒上的使用稳定性如何?
javascript - javascript 中的数据上下文交互 (DCI) 和事件编程
我最近看到了 Trygve Reenskaug 关于 DCI 的以下演示: https ://vimeo.com/43536416 这让我大吃一惊。嗯,在代码中看到软件不同组件之间的交互是一个很有吸引力的想法。
我试图在 javascript 中找到 DCI 的示例,但没有成功。然后我开始怀疑。DCI模式不是与事件编程模式相反吗?
事件编程在 javascript 中很流行,我猜是因为它允许解耦,并且因为经典继承概念不是 js 原生的。我想我了解事件编程的好处,但我也注意到当需要跟踪事件消息时,调试可能会非常困难。
说这两个概念是对立的是否正确?还是我弄错了?是否有一些我错过的 js 中 DCI 的示例实现?为了挖掘这个概念,我应该看什么?
asynchronous - pcap 异步抓包
我正在使用 pcap 库捕获 IEEE802.11 数据包。到目前为止,我使用 pcap_loop 和一个回调函数来接收然后处理数据包。但现在我已经切换了设备定期监听的 wifi 频道。不幸的是, pcap_loop 被阻塞了,所以我不能使用超时来调用我的函数。然后我读到了 pcap_dispatch,但我真的不知道它应该如何异步工作,因为做类似的事情
不会解决任何事情。
那么任何人都可以向我解释如何使 pcap 捕获数据包异步/基于事件,或者换句话说如何解决我的困境?
c# - 登录页面以调用 WCF 服务并在完成 ASYNC 后获得响应
嗯...我有一个登录页面和一个植入基于事件的异步模式的 WCF。最终,我需要在这里做的是对 WCF 方法进行异步调用,并且执行应该等待响应,然后继续进行身份验证,然后重定向。
我正在 WP8 上开发,我这样称呼我的 WCF:
登录.xaml.cs
WCF_StaticDataService.cs
我想调用 LoginSuccessFail(); 方法,然后仅在 WCF 调用完成后导航到相应的页面。请注意,我不想将我的导航感知代码放在 Service 类和 AuthenticateUserCompleted 事件中,因为它不是处理这个问题的工作。
最终,无论成功与否,服务调用完成后,我都希望在我的 Login.xaml.cs 中收到回调或反馈或任何内容。
希望我的信息足够。否则,请建议提供进一步的说明。
c# - 使用 C# 类库中的事件实现日志记录功能 - 这是一种好习惯吗?
我面临着在我的 C# 类库中记录实现的挑战,这是一个域模型。我的主要目标是保持日志记录功能尽可能规范和解耦。通常日志消息将被写入文件,并可能在调试时输出窗口。
目前我使用 log4net,并且我已经编写了一个静态Logger
类,它自己实现了日志记录方法。因此,当执行域对象中的方法时,它们调用静态Logger.Log()
方法。
虽然这种包装足以缓解我的纯洁冲动,但我想知道通过事件实现所有这些日志记录调用并从类库中完全删除日志记录实现细节是否是个好主意。然后,客户端代码会选择性地监听它们并从一些LogEventArgs
.
所以问题是:
一般来说,基于事件的日志记录,特别是在类库中,是一个好主意吗?为什么?
谢谢阅读。
perl - Perl AnyEvent 并发内部结构
我有一个服务器,它在每个客户端连接上创建一个“AnyEvent 计时器”观察者对象(将其添加到 AnyEvent 循环中)。
所以回调将每 $interval 秒执行一次。如果有很多客户端,则必须同时执行一些回调。AnyEvent 如何处理这个问题?它是一个接一个地执行这些回调还是在这种情况下有一些并发机制,以便这些回调将同时执行?(例如,通过创建多个线程来加速必须同时执行的多个回调的执行)
在我的服务器的情况下,回调执行数据库查找。数据库连接的数据库句柄已在事件循环之外初始化。我担心的是,如果 AnyEvent 中有任何并发机制,那么回调不能同时执行,因为一个回调必须等到另一个回调完成数据库查找并且数据库句柄空闲。
PS感谢'ikegami'的回答。
java - vert.x 等待多条消息的回复
在 vert.x 中,我可以向另一个 Verticle 发送消息并“异步等待”回复。
问题是:我想向多个 Verticle 发送消息,并在所有 Verticle 回复时调用一个异步处理程序。
这是可能的还是有更好的设计来实现这个功能?
编辑:
假设我有一个顶点 A,它向顶点 B、C 和 D 发送消息。每个顶点(B、C、D)对消息执行一些操作并返回 A 一些数据。verticle A 然后接收来自 B、C、D 的响应并对所有数据进行处理。问题是我发送的每条消息都有一个处理程序(一个用于 A,一个用于 B,一个用于 C),我希望在所有回复到达时调用一个处理程序。
jquery - jQuery EventBus - 卸载时取消订阅
假设我想使用 jQuery 在 javascript 中实现一个简单的 EventBus 模式。该页面有一个 div,我在其中使用 $().load() 加载一些动态内容。此内容有一些 javascript 代码订阅 $(document).ready() 上的一些事件
page1.html:
根.html
当具有其他脚本的另一个内容加载到同一个 div 中时,我应该如何正确取消订阅此事件处理程序?即放置 $eventBus.off("next"); 的最佳位置在哪里?
我真正想要实现的是让内页在加载时订阅一些事件并在卸载时取消订阅