初试phprpc 果然方便

太高兴了 终于把phprpc跑通了  

今天因为一个SB的想法 导致到去用了phprpc 真是搞笑
因为社区这几天浏览量总是有问题 突然间 我冒出了个想法 想用社区的前台机去做phprpc的客户端 用后台机去做服务端 但是后来发现这思路有点矛盾 因为客户端是要通过url去访问服务 我用了ip去访问不行(暂时还不清楚原因 估计是代码有问题) 用域名去访问也不行(那样是变成是访问本地了)  晕倒 搞到最后白忙一场

白忙之余还是有所收获的  那就是学会用phprpc了 以后也不用再去写他妈的axis的东西(当然这个是在phprpc广泛使用的前提下)

下面把今天的代码共享一下:
服务端:
ICount count = new Count(); //这里一定要用接口,暂时不清楚原因 
PHPRPC_Server phprpc_server = new PHPRPC_Server(); 
phprpc_server.add("getThreadHitCount", count);//getThreadHitCount为Count类中的方法 
phprpc_server.start(request, response); 


我是把服务端写在serlvet里面的 配置出来的访问路径:
http://www.xxx.com/forum/returnJS.act

客户端:
PHPRPC_Client client = new PHPRPC_Client("http://www.xxx.com/forum/returnJS.act?todo=threadHitCount");     
ICount count = (ICount) client.useService(ICount.class);   //这里一定要用接口,暂时不清楚原因 
int threadCount = count.getThreadHitCount(bbsThreadId, bbsThread.getHitCount().intValue());//这里直接调用方法,我就不用invoke方法了 那个麻烦 

参数 todo=threadHitCount这个在phprpc里面没什么作用  只是我业务上需要的参数而已

service实现类
public class Count implements  ICount{ 
public Integer getThreadHitCount (int bbsThreadId,int oldHitCount){ 
  int hitCount=0;   
  log.debug("start phprpc.........."); 
   ............. 
  log.debug("end phprpc..........the count is "+ cacheBbsThread.getHitCount()); 
  return hitCount; 
} 
} 


service接口类
public interface ICount { 
public Integer getThreadHitCount (int bbsThreadId,int oldHitCount); 
} 

你可能感兴趣的:(phprpc)