druby标准库的使用案例

druby可以让ruby对象跨越网络连接成为分布式对象。虽然还使用客户端与服务器这些术语,但是一旦建立起最初的链接,协议实际上是对称的:每一端都可以idiaoyong另外一端对象中的方法。

服务器端程序

require "drb"
require "drb/observer"
class Counter
    include DRb::DRbObservable
    def run
        5.times do |count|
            changed
            notify_observers(count)
        end
    end
end
counter=Counter.new
DRb.start_service("druby://localhost:9001",counter)
DRb.thread.join

 

客户端程序

require "drb"
class Listener
    include DRbUndumped
    def update(value)
        puts value
    end
end
DRb.start_service
counter=DRbObject.new(nil,"druby://localhost:9001")
listener=Listener.new
counter.add_observer(listener)
counter.run

 

输出结果:

0

1

2

3

4

你可能感兴趣的:(Ruby)