代码之家  ›  专栏  ›  技术社区  ›  rtacconi

使用eventmachine发送哈希

  •  0
  • rtacconi  · 技术社区  · 14 年前

    我想从EventMachine客户端向服务器发送一个填充了数据的哈希。问题是服务器receive\ u date方法只打印一个字符串。

    服务器:

      def receive_data(data)
        send_data("Ready")
        puts data[:total]
      end
    

    def receive_data(data)
      send_data( get_memory() )
    end
    
    def get_memory
      sigar = Sigar.new
      mem = sigar.mem
      swap = sigar.swap
      memory = { :total => (mem.total / 1024), :cat => "kwiki", :mouse => "squeaky" }
    end
    

    此行:放入数据[:total]

    只打印零

    3 回复  |  直到 14 年前
        1
  •  1
  •   remi    14 年前

        2
  •  1
  •   xinit    14 年前

    客户:

    需要'yaml'

    def receive_data(data)
      send_data(get_memory().to_yaml)
    end
    

    服务器:

    需要'yaml'

    def receive_data(data)
      puts YAML.load(data)
    end
    

        3
  •  0
  •   newfront    14 年前

    嘿,康尼,

    您可以构建模块并将其包含在类中。 http://www.ruby-doc.org/stdlib/libdoc/drb/rdoc/classes/DRb/DRbUndumped.html

    前任。

    
    require 'drb'
    include DRbUndumped
    
    

    class Sigar def initialize(*args) end

    def ect end

    end

    现在你可以用马歇尔.转储(对象),以及马歇尔.负荷(对象),并且只要收件人文件/进程也共享(例如,require'sigar'),那么它就可以使用您的Ruby对象,而不必对对象进行代价高昂的转换,只需来回发送它。

    快乐的黑客。