2008年9月24日 星期三

PHPRPC for Ruby Server端發佈進階方法

前一篇提到的基本PHPRPC for Ruby的教學中,

PHPRPC for Ruby的伺服器端程式碼
#!ruby
require 'rubygems'
require "phprpc"

def add(a, b)
a + b
end

def sub(a, b)
a - b
end

def hello(s)
"hello: " << s
end


server = PHPRPC::Server.new
server.debug = true
server.add(["add", "sub", "hello"])#將上列的function發佈
server.start
除了提供基本的function發佈外,也可以將class發佈以及別名發佈方式
請看下面範例:

將function別名發佈

假設要將hello以另一個名稱發佈方法,就使用
server.add("hello",nil,"hihi")
這樣子就可以了,我們來試試吧
puts client.hihi("bawbaw")#將傳回 hello: bawbaw

將class發佈
先寫一個名為Test的 class

class Test
@str = ""
def initialize(str="test")
@str=str
end
def hi
"hi "<<@str
end
def time
Time.now
end
end

此時要將Test的hi和time發佈很簡單,看下面示例

server.add("time",Test.new)
server.add("hi",Test.new('bawbaw'))

此時也可以將Test的hi別名hi2發佈,聰明的你一定知道怎做啦…就是在
server.add("hi",Test.new('bawbaw'),'hi2')

此時來試驗看看

puts client.hi2#將傳回hi bawbaw