初めてのphprpcはやっぱり便利

1777 ワード

嬉しすぎてやっと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では何の役にも立たない私のビジネスに必要なパラメータです
サービス実装クラス
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; 
} 
} 

サービスインタフェースクラス
public interface ICount { 
public Integer getThreadHitCount (int bbsThreadId,int oldHitCount); 
}