2012-02-22 220 views
1

我目前正在尝试创建PHP Thrift服务器,该服务器将由PHP客户端访问以执行两个整数的添加。只是一个基本的实现来获得Thrift客户机/服务器的基础知识,但我并不完全清楚如何设置PHP服务器端的东西。这是在Amazon EC2 localhost上完成的。请原谅我的名字 - 我用尽了单词测试的变体。实施PHP Thrift服务器的问题

这是基本的节俭IDL - http://pastebin.com/3KGGrDUN

namespace php gaybear 

service addTest { 
void ping(), 
i32 add(1:i32 num1, 2:i32 num2), 
} 

这是目前对物联网的服务器端的代码 - 我不知道你如何去建立http://pastebin.com/CWnernxf

<? 
$GLOBALS['THRIFT_ROOT'] = '/usr/lib/php'; 

require_once $GLOBALS['THRIFT_ROOT'].'/Thrift.php'; 
require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php'; 
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TPhpStream.php'; 
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php'; 

$GEN_DIR = '/usr/lib/php/gen-php/gaybear/'; 

require_once $GEN_DIR.'/addTest.php'; 
require_once $GEN_DIR.'/gaybear_types.php'; 

class addHandler { 

     public function ping() { 
     } 

     public function add($num1, $num2) { 
       return $num1 + $num2; 
     } 

     public function zip() { 
     } 
} 

$handler = new addHandler(); 
$processor = new addTest($handler); 

$transport = new TBufferedTransport(new TPhpStream(TPhpStream::MODE_R | TPhpStream::MODE_W)); 
$protocol = new TBinaryProtocol($transport, true, true); 

$transport->open(); 
$processor->process($protocol, $protocol); 
$transport->close(); 

?> 

事物的服务器端。对于其他语言来说,它似乎与定义套接字一样简单,但是从阅读许多教程PHP似乎使用“TPhpStream”。

有没有人可以阐明创建Thrift PHP服务器并让PHP客户端调用基本程序?我还没有找到一个教程来解释Thrift PHP服务器的创建,这对我来说已经足够了解了。

谢谢。

+0

您是否收到任何错误消息或什么不具体工作? – hakre 2012-02-22 19:25:41

+0

你也可以看看这个问题:http://stackoverflow.com/questions/8871858/is-it-possible-to-use-apache-thrift-on-a-regular-web-server – 2012-05-30 15:26:23

回答