2008年9月22日 星期一

PHPRPC for Ruby 使用教學

PHPRPC for Ruby
PHPRPC is a Remote Procedure Calling protocol that works over the Internet for Ruby

PHPRPC 是由 andot 所開發的完美高效的遠端呼叫程序。

如何安裝PHPRPC?

從Gem安裝:

$ gem install phprpc


PHPRPC for Ruby的客戶端程式碼
#!ruby
require 'rubygems'
require "phprpc"
rpc_url="http://bawbaw.icittys.com/rpc_server.php"
client = PHPRPC::Client.new(rpc_url)#初始化一個PHPRPC client
puts client.add(1, 2)#呼叫遠端函數add(1,2)將列印出3
puts client.sub(1, 2)#呼叫遠端函數sub(1,2)將列印出-1
puts client.hello('Ma Bingyao')#呼叫遠端函數hello('Ma Bingyao')將列印出hello Ma Bingyao
這樣子就完成啦…簡單吧
再來示範如何加密傳輸
#!ruby
require 'rubygems'
require "phprpc"
rpc_url="http://bawbaw.icittys.com/rpc_server.php"
client = PHPRPC::Client.new(rpc_url)#初始化一個PHPRPC client
client.encryptmode = 2#雙向加密
client.keylength = 256#加密長度256
puts client.add(1, 2)#呼叫遠端函數add(1,2)將列印出3
puts client.sub(1, 2)#呼叫遠端函數sub(1,2)將列印出-1
puts client.hello('Ma Bingyao')#呼叫遠端函數hello('Ma Bingyao')將列印出hello Ma Bingyao

沒看過這麼簡單的web service吧…安全又快速


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


在此推薦Thin和Mongrel這兩種server
如未安裝Thin或Mongrel先安裝(擇一安裝或兩種都安裝)
$ gem install thin
$ gem install mongrel

如何啟動PHPRPC for Ruby Server

1.使用Thin發佈PHPRPC

$ ruby server.rb thin

如何?很簡單吧,那再看下列的Mongrel Server啟動方式

2.使用Mongrel發佈PHPRPC
$ ruby server.rb mongrel

此時發佈網址為http://localhost:3000/

如果想要改變一些參數,請用
$ ruby server.rb thin --help
$ ruby server.rb mongrel --help
就可以知道如何改變及設定啟動參數


現在大家就動手測試吧…歡迎進入PHPRPC的世界