eventmachine

    0热度

    1回答

    我有一个Sinatra应用程序,整体配置如此处所述sinatra docs。 它基本上启动一个事件机器循环。 现在,如果我想写一个RSpec测试,我该如何启动服务器并关闭它之后? 我可以通过ruby server.rb从控制台执行此操作,我可以在测试套装设置(但是,我不知道它是否正确)从spec文件执行此命令。但是,即使我这样做,我如何阻止它呢? (我是否需要或在测试完成后会停止)?

    0热度

    1回答

    我玩了一点事件机器,并得到了一些代码在另一个线程上运行,我希望他的回调得到同步回主线程,所以我想做这样的事情: thread.post { fiber.resume(result) } 光纤父母是线程,但执行的上下文在另一个线程上。 感谢,

    0热度

    1回答

    我已经使用Shopify/Dashing作为基础设置了家庭自动化仪表板。 Dashing使用Gridster.js来分配我在列&页面中的大量小部件。页面正在使用Dashing.cycleDashboards()进行切换。这些小部件绑定到带有Batman.js的EventSource套接字(作为Ruby Gem安装,通过mqtt从OpenHab获取数据) 我选择不创建多个仪表板,因为仪表板运行时过时

    0热度

    2回答

    我在WebSocket(WS)内发出Redis订阅。当我接收到WS打开时,我将请求线程化,然后实例化Redis客户端。在公开之内,我为Redis提供线程并发布订阅。 这一切正常,直到我收到一个意想不到的WS关闭。此时,运行Redis订阅的线程消失了。如果我发出取消订阅,我会得到一个挂起。如果我不退订,我已经离开了一个幻影订阅,导致我接下来发生麻烦。 发布它的线程终止后,是否有某种方法可以删除订阅?

    2热度

    1回答

    得到这是一个服务器端的WebSocket客户端。我试图让用户输入一个循环,然后发送,作为一个WebSocket的消息发送到服务器。基本操作正在工作,我可以ping/pong服务器。但它不工作放置一个循环中的WebSocket on(:open)功能: 客户端(节选): require 'faye/websocket' require 'eventmachine' EM.run

    0热度

    1回答

    如何获得ruby应用程序中当前开放纤维的数量?我的应用程序使用EventMachine Synchrony库进行并发处理。虽然使用谷歌搜索,我还没有找到任何将返回它的API。 例如,如果我有这样的一段代码: EM::Synchrony::FiberIterator.new(@outputs, @outputs.size).each do |output| # some code goes her

    2热度

    1回答

    我是新来的光纤和EventMachine,并且最近才发现有关光纤,当我看到Ruby是否具有任何并发​​功能时,如go-lang。 在使用光纤时,似乎并没有太多的实例用于实际用例。 我还是设法找到这个:https://www.igvita.com/2009/05/13/fibers-cooperative-scheduling-in-ruby/(回从2009年!) 它具有以下代码: require

    2热度

    1回答

    我对编程一般都比较陌生,我在客户端和服务器端都使用EventMachine打开它们之间的websocket连接。 我的问题是与客户端,以及由于网络连接问题导致连接丢失。 def websocket_connection EM.run do begin puts "Connecting" ws = WebSocket::EventMachine::Clie

    2热度

    2回答

    使用faye-websocket和EventMachine的代码看起来非常相似,王菲-的WebSocket的客户端的例子: require 'faye/websocket' require 'eventmachine' def setup_socket(url) EM.run { ws = Faye::WebSocket::Client.new(url)

    1热度

    1回答

    使用puma,faye-websocket-ruby和eventmachine,我试图实现一个扩展的WebSocket服务器来支持使用redis.rb的通道。每个客户将使用当前正在开发的路线提供一个频道:“/ C#{random number}”。所有这些逻辑都需要驻留在服务器中,因为客户端将是基于微处理器的Python系统,不支持更高级别的库。 我的代码是基于ruby-websockets-ch