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