PHPRPC の簡単な例
PHPRPC は、軽量、安全、クロスインターネット、クロス言語、クロスプラットフォーム、クロス環境、クロスドメインであり、複雑なオブジェクトの送信をサポートし、参照パラメータの受け渡しをサポートし、コンテンツ出力のリダイレクトをサポートし、階層型エラー処理をサポートします。セッション対応、サービス指向の高性能リモート プロシージャ コール プロトコル。
公式ホームページ: http://www.phprpc.org/zh_CN/
公式 Web サイトには、さまざまなバージョンの使用方法が比較的詳しく説明されており、比較的すぐに使い始めることができます。以下は私のデモの例です。ドキュメントを読んでから最初のデモを開発するまでに約 30 分かかりました。
私は Java バージョンを使用しています。前のインストール手順は繰り返しません。公式ドキュメントを参照してください。
1. Service インターフェースと実装クラスを作成します
public interface ServiceI { public String say(String name); public Errors showError(String info); }
public class FirstService implements ServiceI{ @Override public String say(String name) { String res = "Hello, "+name+" from PHPRPC"; return res; } public Errors showError(String info){ Errors er = null; er = new Errors(); er.setId("1111"); er.setMsg("phprpc make error:"+info); return er; } }
public class Errors implements Serializable{ private String id; private String msg; public Errors(){} public String getId() { return id; } public void setId(String id) { this.id = id; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
public class PhprpcGloabService extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { [b]PHPRPC_Server server = new PHPRPC_Server(); FirstService first = new FirstService(); server.add(first); server.start(req, res);[/b] } }
<!-- PHPRPC Web service发布 --> <servlet> <servlet-name>GloabService</servlet-name> <servlet-class> com.smartcoms.service.PhprpcGloabService </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>GloabService</servlet-name> <url-pattern>/rpcservice/*</url-pattern> </servlet-mapping>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="org.phprpc.*" %> <%@ page import="com.smartcoms.web.UIElement.Errors" %> <%@ page import="com.smartcoms.service.ServiceI" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Phprpc 调试</title> </head> <body> <% PHPRPC_Client client = new PHPRPC_Client("http://localhost:8082/smartcoms/rpcservice/GloabService"); ServiceI service = (ServiceI)client.useService(ServiceI.class); out.println(service.say("中国")); Errors er = service.showError("信息"); out.println(er.getId()); out.println(er.getMsg()); %> </body> </html>