太高兴了 终于把phprpc跑通了
今天因为一个SB的想法 导致到去用了phprpc 真是搞笑
因为社区这几天浏览量总是有问题 突然间 我冒出了个想法 想用社区的前台机去做phprpc的客户端 用后台机去做服务端 但是后来发现这思路有点矛盾 因为客户端是要通过url去访问服务 我用了ip去访问不行(暂时还不清楚原因 估计是代码有问题) 用域名去访问也不行(那样是变成是访问本地了) 晕倒 搞到最后白忙一场
白忙之余还是有所收获的 那就是学会用phprpc了 以后也不用再去写他妈的axis的东西(当然这个是在phprpc广泛使用的前提下)
下面把今天的代码共享一下:
服务端:
我是把服务端写在serlvet里面的 配置出来的访问路径:
http://www.xxx.com/forum/returnJS.act
客户端:
参数 todo=threadHitCount这个在phprpc里面没什么作用 只是我业务上需要的参数而已
service实现类
service接口类
今天因为一个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);
}