复制代码 代码如下:

         private static int Counter = 0;

    3.6
为那些工程,增加现存项目:thrift库目录\thrift-0.9.0\lib\csharp\src\Thrift.csproj,然后援引这几个类型。

                 var result_GetString = client.GetString();
                 var result_Sum = client.Sum(255, 322);
             }
             catch (e)
             {
                 alert(“出错鸟:” + e.message);
             }
         });
     </script>
 </head>
 <body>
 </body>
 </html>

    1.3 js直接与thrift
server通讯,能够增长品质,况且用C#开辟server,开采成效也极高。(那多少个web
service弱爆了)

     }
 }

 thrift-0.9.0.exe –gen csharp data.txt
 thrift-0.9.0.exe –gen js data.txt
 pause

2.环境

 service UserStorage
 {
     i32 Sum( 1: i32 arg_number1, 2: i32 arg_number2),
     string GetString()
 }

3.步骤(以下步骤,对于小白来讲,某个不方便。QQ探究群:23152359 )

你只怕感兴趣的稿子:

  • thrift安装境遇的标题以及缓慢解决办法(不可不看篇)
  • Thrift的装置格局和精炼实例
  • 基于HBase
    Thrift接口的有的应用难点及有关心意事项的详解
  • Java
    thrift服务器和客户端创建实例代码

3.4 命令行下,用thrift编写翻译器,对它进行编译:
   run.bat:

复制代码 代码如下:

        1.4.2 给thrift
server程序增加自动运转,与监视程序,来成功thrift的夭亡后活动重启。

 namespace CSharpServer
 {
     public class UserStorageHandle : UserStorage.Iface
     {

         public int Sum(int arg_number1, int arg_number2)
         {
             int result = arg_number1 + arg_number2;
             Console.WriteLine(DateTime.Now.ToString() + ”
收到央浼:Sum,参数:arg_number1 = ” + arg_number1.ToString() +
“,arg_number2 = ” + arg_number2.ToString() + “,返回:result = ” +
result.ToString());
             return result;
         }

    3.5 建构三个名称叫C夏普Server的C#调节台工程,.net 4.0的。

<!DOCTYPE html>
 <html xmlns=”;
 <head>
 <meta http-equiv=”Content-Type” content=”text/html;
charset=utf-8″/>
     <title></title>
     <script type=”text/javascript”
src=”jquery-1.9.1.js”></script>
     <script type=”text/javascript”
src=”data_types.js”></script>
     <script type=”text/javascript”
src=”thrift.js”></script>
     <script type=”text/javascript”
src=”UserStorage.js”></script>

            Test.html:

    1.1 首先,js 通过 thrift
访问C#,实际上是一种c/s格局。thrift是通讯工具,js是客户端,C#是服务端。

    1.2 使用js直接与thrift server通信。让web开拓变得更简短。假如选择Web
Service,你必要和谐去贯彻C/S两端的类别化与反体系化操作,还索要自行管理极度,减少了成本功用。而thrift则会自动生成两端的操作类,你只要求处理措施内部的逻辑就可以。

         public string GetString()
         {
             int currentCounter =
System.Threading.Interlocked.Increment(ref UserStorageHandle.Counter);
             Console.WriteLine(DateTime.Now.ToString() + ”
收到须要:GetString,参数:未有,再次来到:result = \”thrift is OK : ” +
currentCounter.ToString() + “\””);
             return “thrift is OK : ” + currentCounter.ToString();
         }

        data.txt:

    3.2 去thrift官方下载编写翻译好的win下的thrift编写翻译器,是贰个exe文件。

    Win7 – VS2012 – .net 4.0 C# 调控台工程(用来承载thrift)

复制代码 代码如下:

1.为啥要用thrift js C#?

             HttpListenerContext httpListenerContext =
Program.httpListener.EndGetContext(result);

                 Program.httpServer = new THttpHandler(processor,
protocolFactory);

     <script>
         $(document).ready(function ()
         {
             var debugPosation = 0;
             try
             {
                 var transport = new
Thrift.Transport(“//www.jb51.net/”);
                 var protocol = new Thrift.Protocol(transport);
                 var client = new UserStorageClient(protocol);

    3.9 主程序Program.cs:

             Program.httpServer.ProcessRequest(httpListenerContext);
         }

复制代码 代码如下:

    3.11 新开三个VS二零一二(内存远远不够的尽快去买),创建一个叫JsProject的C#
.net 4.0 Web空工程。

     }
 }

 namespace CSharpServer
 {
1.为什么要用thrift js C。     class Program
     {
1.为什么要用thrift js C。         private static HttpListener httpListener = null;
         private static THttpHandler httpServer = null;

         }

    Win7 – VS2012 – .net 4.0 C# Web工程(用来调度js,超方便)

    3.10 按F5,启动CSharpServer项目。

    3.1 去thrift官方下载thrift库,前段时间是0.9.0。

         static void Main(string[]1.为什么要用thrift js C。 args)
         {
             string serviceUrl = “”;
             try
             {
                 UserStorageHandle handle = new UserStorageHandle();
                 UserStorage.Processor processor = new
UserStorage.Processor(handle);
                 TProtocolFactory protocolFactory = new
TJSONProtocol.Factory();

 

    3.14 在根目录下开创多个Test.html文件,Test.html
应该与Web.config在同一级:

        1.4.1
你须要具备服务端的断然调整权,举例,你能够平素登录服务器的操作系统上进行操作。因而,如若你独有三个网页空间,则不切合这种办法。当然,你也得以用web
service里绑定thrift,但诸如此比您又需求自身手动举行种类化与反种类操作,並且两回转变让质量更低,有违最初的愿景

    1.4
当然,大家不可能只看到亮点。用这种办法也是有相比显著的老毛病:假诺利用web
service,则网页与web
service可以封装在贰个工程里,安顿到IIS上后,能够存在于贰个网址内。而选取了thrift后,你还亟需手动处理thrift程序。包罗:

    3.7
把thrift编写翻译出来的UserStorage.cs(在gen-csharp目录里),拖动到解决方案管理器里的CSharpServer项目标根目录下,UserStorage.cs与Program.cs应该在同一流。

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;

    3.8
在CSharpServer项目里创制一个UserStorage的拍卖类UserStorageHandle.cs:(它应有与UserStorage.cs与Program.cs在同一流)

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using Thrift.Transport;
 using Thrift.Protocol;
 using Thrift.Server;
 using System.Net;

        data_types.js \ jquery-1.9.1.js \ thrift.js \ UserStorage.js
应该与Web.config在同顶级。

                 Program.httpListener = new HttpListener();
                 Program.httpListener.Prefixes.Add(serviceUrl);
                 Program.httpListener.Start();
                 IAsyncResult result =
Program.httpListener.BeginGetContext(new
AsyncCallback(WebRequestCallback), null);
                 Console.WriteLine(“Thrift 服务成功运维,网站是 ” +
serviceUrl);
             }
             catch (System.Exception ex)
             {
                 Console.WriteLine(“发生错误:” + ex.Message);
                 Console.WriteLine(“按回车键退出”);
                 Console.ReadLine();
                 return;
             }
            
Console.WriteLine(“若需甘休程序,请直接关闭窗口,或按回车。”);
             Console.ReadLine();
         }

    3.12 去jquery官方网址下载jquery-1.9.1.js(mini版也行,随意)

 

    3.15 给Test.html的 “ var debugPosation = 0; ”
这一行,下断点,然后F5,就可以看出效果了。

         public static void WebRequestCallback(IAsyncResult result)
         {
             if (Program.httpListener == null)
             {
                
Console.WriteLine(“爆发错误:HttpListener已经被关闭”);
                 Console.WriteLine(“按回车键退出”);
                 Console.ReadLine();
                 return;
             }

    3.13
把thrift编译的js文件data_types.js与UserStorage.js,thrift库的js库文件(thrift库目录\thrift-0.9.0\lib\js\thrift.js),以及刚下载的jq文件jquery-1.9.1.js,全体拖动到消除方案财富管理器的JsProject项目标根目录下:

复制代码 代码如下:

             Program.httpListener.BeginGetContext(new
AsyncCallback(WebRequestCallback), null);

         public UserStorageHandle()
         {

    3.3
写多少个数据结构定义文件。作者在此处只是用了劳动,没有定义自定义数据结构。

相关文章