簡體   English   中英

在javascript客戶端中的節儉傳輸

[英]Thrift transport in javascript client

我正在嘗試為我的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構造函數的是什么?

要使用Javascript客戶端,您需要一個HTTP Thrift服務器(例如yiding指出的服務器)。 您還需要使用TJSONProtocol

如何使Thrift Java服務器與Thrift Javascript客戶端一起工作的文件分散在整個源代碼中。 我在這里一起困惑: https//github.com/LukeOwncloud/ThriftJavaJavascriptDemo

該參數是網站端點的URL,該端點充當使用HTTP處理器和JSON協議的thrift服務器。 源代碼包含一個可以與這樣的客戶端一起使用的java測試服務器示例

對於您自己的服務器,它應該能夠充當Web服務器,並處理來自您的js客戶端的跨域請求的CORS之類的東西。

我認為yiding給你的答案已經確定了問題。 我沒有完整的答案,但可以給你一些鏈接,可以幫助你解決問題。 如果您使用PHP編寫服務器, 這個問題可能有所幫助。 如果您使用Java編寫服務器,那么鏈接到此示例代碼的 博客文章可能有所幫助。

上述答案已經足夠清晰了。

但是為了使事情更清楚,假設您的服務器是localhost並且它在端口8080上運行。

讓您的項目名稱為Tutorial_service ,服務器項目中的端點為teach_thrift然后您必須傳遞URL,如下所示

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

它應該讓你繼續.. :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM