Apache Thrift Java-Javascript通信

时间:2012-08-05 21:54:50

标签: javascript java thrift

我正在编写一个基于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。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

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

我希望你能使用我们JS实现的东西。

答案 1 :(得分:0)

当您的服务器使用Out Of Memory但您尝试以其他方式访问它时发生TBinaryProtocol错误,例如使用浏览器(说HTTP)。 IMO是一个bug。应该有一些很好的错误信息。

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