[英]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之類的東西。
上述答案已經足夠清晰了。
但是為了使事情更清楚,假設您的服務器是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.