使用PHPRpc实现Java和PHP通信

PHPRPC是一款不错的是轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。官方网址为http://www.phprpc.org/zh_CN/

本文以Java作为服务器端,PHP作为客户端来作为演示。

1、先书写Java服务器端,书写一个接口。如下:

package org.huashui.server;
 
public interface UserManager {
	//增加一个用户名
	public void add(String name);
	//获取用户名
	public String getName();
	//长数据测试
	public String getLongString();
	//长数据测试2
	public byte[] getLongByte();
 
}

书写实现类

package org.huashui.server.impl;
 
import org.huashui.server.UserManager;
 
public class UserManagerImpl implements UserManager {
 
	private String name;
 
	public void add(String name) {
		this.name = name;
		System.out.println("我爱你," + name);
 
	}
 
	public String getName() {
 
		return "我也爱你";
	}
 
	public String getLongString() {
		StringBuffer sb = new StringBuffer();
 
		return sb.toString();
	}
 
	public byte[] getLongByte() {
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < 40000; i++) {
			sb
					.append(
							i
									+ "insert into passport_members(username, password, email, regdate, salt, totalpoint, pid) values ('huashui','12312312312312','123@yahoo.com.cn','0','','0','123');")
					.append("\n");
		}
		return sb.toString().getBytes();
 
	}
 
}

书写供远程调用的server.jsp

<%@ page language="java"  pageEncoding="ISO-8859-1"%>
 
<%@ page import="org.phprpc.PHPRPC_Server"%>
<%@ page import="org.huashui.server.UserManager"%>
 
<%@page import="org.huashui.server.impl.UserManagerImpl;"%>
 
<%
 
PHPRPC_Server phprpc_server = new PHPRPC_Server(); 
UserManager um;
 
um= new UserManagerImpl();
phprpc_server.add(um);   
phprpc_server.start(request,response);
%>

至此,服务器端完成。
客户端

header("Content-type:text/plain;charset=GB2312");   
include ("php/phprpc_client.php");   
$client = new PHPRPC_Client();    
$client->useService('http://localhost:8080/phprpc/server.jsp");   
$client->setCharset('GB2312'); 
$client->setKeyLength(128);
$client->setEncryptMode(3);
$client->add("huashui");

Post a Comment