在javascript客户端中的节俭传输

时间:2013-05-03 03:13:05

标签: javascript thrift

我正在尝试为我的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构造函数的是什么?

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我认为yiding给你的答案已经确定了问题。我没有完整的答案,但可以给你一些链接,可以帮助你解决问题。如果您使用PHP编写服务器,this question可能有所帮助。如果您使用Java编写服务器,this blog post链接到this sample code可能有所帮助。

答案 3 :(得分:0)

上述答案已经足够清晰了。

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

让您的项目名称为Tutorial_service,服务器项目中的端点为teach_thrift 然后你必须传递URL如下

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

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