Apache Thrift Java-Javascript communication



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

我做错了什么?

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

请注意https://github.com/imysak/using-thrift(我和我的朋友写了一个简单的例子,说明如何通过节俭来交流Java-Node.js)。

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

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

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

最新更新