浏览模式: 标准 | 列表

今天有人问 PHPRPC for .NET服务器端的 AddGlobal 方法是做什么用的,这个方法是最近的版本中新加的。它的主要作用就是提高服务器端的效率。它的作用跟原来的 Add 方法类似,但是 Add 方法是为每一个 PHPRPC_Server 的实例对象添加发布方法的,而 AddGlobal 是给整个 PHPRPC_Server 添加发布方法的。也就是说用 AddGlobal 添加一次后,所有的 PHPRPC_Server 对象实例中都可以直接发布这些方法,而不需要每次实例化后再添加,这样就可以提高服务器的处理效率了。AddGlobal 方法一般用在 Global.asax 中,它的用法如下,下面以 ASP.NET 2.0 为例,首先在你的站点下建立这个文件 Global.asax,内容如下:

Global.asax 代码
  1. <%@ Application Language="C#" CodeBehind="Global.asax.cs" Inherits="Global" %>   

然后在 App_Code 目录下建立 Global.asax.cs 文件,内容如下:

Global.asax.cs 代码
  1. using System;  
  2. using org.phprpc;  
  3. using System.Collections.Generic;  
  4.   
  5. public class Test {  
  6.     public double add(double a, double b) {  
  7.         return a + b;  
  8.     }  
  9.     public string add(string a, string b) {  
  10.         return a + b;  
  11.     }  
  12.     public int sub(int a, int b) {  
  13.         return a - b;  
  14.     }  
  15.     public int inc(ref int n) {  
  16.         return n++;  
  17.     }  
  18.     public static string hello(string name, System.IO.TextWriter output) {  
  19.         string result = String.Concat("hello ", name);  
  20.         output.Write("output: " + result);  
  21.         return result;  
  22.     }  
  23.     public List<int> sort(List<int> list) {  
  24.         list.Sort();  
  25.         return list;  
  26.     }  
  27. };  
  28.   
  29. public class Global: System.Web.HttpApplication {  
  30.     protected void Application_Start(Object sender, EventArgs e) {  
  31.         PHPRPC_Server.AddGlobal(new string[] { "add""sub""inc""sort" }, new Test());  
  32.         PHPRPC_Server.AddGlobal("hello"typeof(Test));  
  33.     }   
  34. }  


这样就给全局的 PHPRPC_Server 类添加上了 add, sub, inc 和 hello 方法了。接下来发布的网页就简单多了,比如发布的网页是 index.aspx 的话,那么它的内容只需要这么点就够了:

 

index.aspx 代码
  1. <%@ Page Language="C#" %>  
  2. <% new org.phprpc.PHPRPC_Server().Start(); %>  

是不是很简单啊?

 

» 阅读全文

9月
14

PHPRPC 3.0 for Ruby

该版本支持 Ruby 1.8.5 及其更高版本。包括客户端和服务器的实现。服务器除了支持以 cgifcgiscgilsapi 方式运行外,还支持以独立服务器 ( mongrelthinebbwebrick ) 方式运行。

服务器开发接口统一,不管以什么方式运行,程序写法都是一模一样的。这里推荐以 mongrel 或 thin 独立服务器方式运行,因为这两种运行方式相比其他方式来说要快速稳定。

下载:http://www.phprpc.org

» 阅读全文

PHPRPC 3.0 for Delphi 断断续续的开发了都快近 1 年了,不过今天终于全部完成,并发布了!

PHPRPC 3.0 for Delphi 是在 Delphi 7 环境下开发的,采用 CLX 方式开发,核心部分全部使用 RTL 编写,通讯部分使用了 Indy 库(Indy 库也是跨平台的开源库),没有用到任何 VCL 控件,并且 PHPRPC_Client 本身也做成了 CLX 控件,不但使用非常简单,而且还支持 Kylix。也就是说,不但可以支持 Win32 原生程序开发,而且还支持 Linux 程序开发。

其它版本的 Delphi 是否支持尚未测试。另外,文档也需要过些日子才会发布。在这之前,还需要完成 Java 和 .NET 版本的升级,并且补充完整其它版本的文档。

 

这些工作完成后,就开始计划中的下一个语言版本:PHPRPC for Ruby !

下载地址:http://www.phprpc.org/

2008 年 9 月 14 日更新(中秋节版)

增加了对 Delphi 2009 的 Windows 原生程序开发的支持。

» 阅读全文

8月
23

PHPRPC 3.0 for .NET 发布

PHPRPC 3.0 for .NET 可能让大家期待太久了。不过今天终于完成了。

这个版本支持 .NET Framework 1.0、1.1、2.0、3.5,.NET Compact Framework 1.0、2.0、3.5 和 Mono。也就是说,支持目前所有版本的 .NET。支持所有基本类型、大部分容器类型(如ArrayList、Hashtable、数组等)、自定义可序列化对象类型的传递。可以与其它语言的 PHPRPC 服务器和客户端进行完美交互。

下载地址请访问 PHPRPC 官方网站:http://www.phprpc.org

2008 年 2 月 24 日更新:

对于动态代理对象增加了引用参数传递的支持。
对于服务器端发布的方法也增加了引用参数传递的支持。
对客户端和服务器端传递包含大量自定义对象的容器(数组、ArrayList、Hashtable 等)进行了一些优化。

2008 年 7 月 9 日更新:

修正了对象反序列化的一个 bug,该问题会影响传递对象数组或者传递带有对象的 ArrayList、Hashtable 等容器的正常传递。

2008 年 8 月 17 日更新:

增加了发布全局方法的功能,进一步提高了服务器性能。
修正了大整数右移位运算的 bug。

2008 年 8 月 23 日更新:

修正 Cookieless Session 情况下 URL 重定向的错误。
修正 Session Cookie 被错误清除的问题。
服务器端返回时增加了 Content-Length 头,避免响应信息被 chunked 编码。
修正了 UTF-8 编码时,输出重定向和序列化字符串被添加 UTF-8 BOM 头的问题。
Mono的二进制版本重新用 1.2.6 版本的 Mono 编译,1.9.2 版本 Mono 编译器存在错误,编译出的二进制版本无法正确执行。

» 阅读全文

PHPRPC 3.0 for J2ME 的测试版在 2 个月前就已经完成了,经过 2 个多月的应用测试,没有发现任何问题。这次发布没有 bug 修正,仅仅对反序列化的代码做了优化。并且增加了命令行编译的批处理文件。

同样,文档需要过些日子才能够完成,最近要写的文档实在是太多了。

» 阅读全文