10

我正在尝试为我的 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

4 回答 4

2

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

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

于 2015-06-25T13:19:52.893 回答
1

我认为一丁给你的答案已经确定了问题所在。我没有完整的答案,但可以给你一些链接,可以帮助你弄清楚事情。如果您使用 PHP 编写服务器,这个问题可能会有所帮助。如果您使用 Java 编写服务器,链接到此示例代码的这篇博客文章可能会有所帮助。

于 2013-06-06T18:06:55.213 回答
1

该参数是指向网站端点的 URL,该端点充当使用 HTTP 处理器和 JSON 协议的节俭服务器。源代码包含一个可以与此类客户端一起使用的java 测试服务器示例。

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

于 2013-05-03T03:51:56.787 回答
0

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

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

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

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

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

于 2013-12-09T10:50:40.313 回答