8

我正在编写一个基于 Apache Thrift 的 Java 服务器,它将接收来自 Javascript 客户端的数据。我已经完成了 Java 服务器,但问题是我可以获得 Javascript 客户端的工作示例(我无法找到一个好的示例)。构建文档中的示例不是很有帮助。我当前的 Javascript 客户端如下:

function testServer() {
    try {
        var transport = new Thrift.Transport("http://127.0.0.1:9090");
        var protocol  = new Thrift.Protocol(transport);
        var client = new JavaEventClient(protocol);

        var alive = client.isServerAlive();
    } catch(e) {
    }
}

testServer();  

但是代码不起作用 - 因为 Java 服务器抛出“内存不足”错误。我不知道错误是由于我的客户端代码还是 Apache Thrift。

我究竟做错了什么?

4

2 回答 2

0

看起来像是通信中的问题。也许您在服务器和客户端上使用不同的协议或传输。或该协议的实现中的错误。// 例如,我在 thrift-javascript 序列化中发现了带有 utf8 字符的错误。

请查看https://github.com/imysak/using-thrift(我和我的朋友编写了这个通过 thrift 进行 Java-Node.js 通信的简单示例)。

我希望你可以使用我们的 JS 实现中的一些东西。

于 2013-03-20T11:28:42.300 回答
0

Out Of Memory您的服务器正在使用TBinaryProtocol但您尝试以另一种方式访问​​它时会发生错误,例如使用浏览器(它说 HTTP)。IMO 这是一个错误。应该有一些不错的错误消息。

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

于 2015-06-25T13:23:24.800 回答