【问题标题】:Thrift transport in javascript clientjavascript 客户端中的 Thrift 传输
【发布时间】:2013-04-27 09:21:22
【问题描述】:

我正在尝试为我的 Thrift 服务器构建一个 javascript 客户端。服务器已启动并正在运行,我可以调用使用 PHP 客户端的服务器。我只是无法弄清楚 javascript 客户端。

特别是,实例化传输让我感到困惑。 http://thrift.apache.org/tutorial/js/ 的教程显示:

function calc() {
    var transport = new Thrift.Transport("/thrift/service/tutorial/");
    var protocol  = new Thrift.Protocol(transport);
    var client    = new CalculatorClient(protocol);

当我这样做时,我在“/var/www/thrift/service/tutorial/”上得到一个 http 404

我发现了一两个其他使用的例子

var transport = new Thrift.Transport("/service");

但这也给了我一个 404。

我从未见过关于我应该在 javascript 中传递给 Transport 的构造函数的解释。在我的 PHP 代码中,我创建了一个套接字,然后将其传递给 Transport 的构造函数。但是,javascript 抱怨 Thrift.Socket() 不是构造函数。

http://thrift.apache.org/tutorial/js/ 的教程并不是很有帮助。它说:

使用 Thrift 文件的第一件事是设置您的 传输协议。此时,它只支持 AJAX 并且是 如下:

var transport = new Thrift.Transport("/thrift/service/tutorial/");

没有描述传递给构造函数的路径应该是什么。

我迷路了。我在 javascript 中将什么传递给 Transport 构造函数?

【问题讨论】:

    标签: javascript thrift


    【解决方案1】:

    要使用 Javascript 客户端,您需要一个 HTTP Thrift 服务器(例如 yiding 指出的那个)。您还需要使用TJSONProtocol

    如何使 Thrift Java 服务器与 Thrift Javascript 客户端一起工作的文件分散在整个源代码中。我在这里把他们一起搞糊涂了:https://github.com/LukeOwncloud/ThriftJavaJavascriptDemo

    【讨论】:

      【解决方案2】:

      参数是网站端点的 URL,该端点使用 HTTP 处理器和 JSON 协议充当节俭服务器。源代码包含一个java test server example,可以与这样的客户端一起使用。

      对于您自己的服务器,它应该能够充当网络服务器,并为来自您的 js 客户端的跨域请求处理诸如 CORS 之类的事情。

      【讨论】:

        【解决方案3】:

        我认为一丁给你的答案已经确定了问题所在。我没有完整的答案,但可以给你一些链接,可以帮助你弄清楚事情。如果您使用 PHP 编写服务器,this question 可能会有所帮助。如果您使用 Java 编写服务器,链接到 this sample codethis blog post 可能会有所帮助。

        【讨论】:

          【解决方案4】:

          上面的答案已经足够清晰了。

          但是为了让事情更清楚一点,假设您的服务器是 localhost 并且它在端口 8080 上运行。

          让您的项目名称为Tutorial_service,服务器项目中的端点为teach_thrift 那么你必须传递如下网址

          var transport = new Thrift.Transport("http://localhost:8080/Tutorial_service/teach_thrift");
          

          它应该让你继续前进.. :)

          【讨论】:

            猜你喜欢
            • 2015-08-20
            • 1970-01-01
            • 1970-01-01
            • 2014-03-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-07-05
            • 2016-06-26
            相关资源
            最近更新 更多