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