2013-05-03 27 views
8

Tôi đang cố gắng xây dựng một ứng dụng khách javascript cho máy chủ Thrift của mình. Máy chủ đang hoạt động và tôi có thể nhận các cuộc gọi đến máy chủ làm việc với một máy khách PHP. Tôi chỉ không thể tìm ra khách hàng javascript.Vận chuyển tiết kiệm trong máy khách javascript

Đặc biệt, instantiating giao thông bị cản trở tôi. Các hướng dẫn tại http://thrift.apache.org/tutorial/js/ show:

function calc() { 
    var transport = new Thrift.Transport("/thrift/service/tutorial/"); 
    var protocol = new Thrift.Protocol(transport); 
    var client = new CalculatorClient(protocol); 

Khi tôi làm điều này, tôi nhận được một http 404 trên "/ var/www/tiết kiệm/dịch vụ/hướng dẫn /"

Tôi đã tìm thấy một hoặc hai ví dụ khác sử dụng

var transport = new Thrift.Transport("/service"); 

Nhưng điều đó cũng cho tôi 404.

Tôi chưa bao giờ thấy giải thích về những gì tôi phải truyền cho hàm tạo của Giao thông vận tải trong javascript. Trong mã PHP của tôi, tôi tạo một socket và sau đó truyền nó cho hàm tạo của Transport. Tuy nhiên, javascript phàn nàn rằng Thrift.Socket() không phải là một hàm tạo.

Hướng dẫn tại http://thrift.apache.org/tutorial/js/ không hữu ích lắm. Nó nói:

Điều đầu tiên để sử dụng các tệp Tiết kiệm đang thiết lập giao thức vận tải của bạn. Tại thời điểm này, nó chỉ hỗ trợ AJAX và là như sau:

var transport = new Thrift.Transport("/thrift/service/tutorial/"); 

Không có mô tả về những gì con đường mà truyền cho constructor nên.

Tôi bị mất trên trang này. Tôi phải truyền cái gì cho hàm dựng Transport trong javascript?

Trả lời

1

Đối số là URL đến điểm cuối trang web hoạt động như máy chủ tiết kiệm bằng cách sử dụng bộ xử lý HTTP và giao thức JSON. Mã nguồn có chứa một java test server example có thể làm việc với một khách hàng như vậy.

Đối với máy chủ của riêng bạn, máy chủ có thể hoạt động như máy chủ web và xử lý những thứ như CORS cho các yêu cầu miền chéo từ ứng dụng khách của bạn.

1

Tôi nghĩ câu trả lời đã giúp bạn xác định được sự cố. Tôi không có câu trả lời hoàn chỉnh, nhưng có thể cung cấp cho bạn một vài liên kết có thể giúp bạn tìm hiểu mọi thứ. Nếu bạn đang viết máy chủ của mình bằng PHP, this question có thể hữu ích. Nếu bạn đang viết máy chủ của mình bằng Java, this blog post liên kết đến this sample code có thể hữu ích.

0

Các câu trả lời ở trên đã cho đủ rõ ràng.

Tuy nhiên, để làm cho mọi việc rõ ràng hơn một chút, giả sử máy chủ của bạn là localhost và đang chạy trên cổng 8080.

Hãy Tên dự án của bạn được Tutorial_service và thiết bị đầu cuối trong dự án máy chủ của bạn có teach_thrift sau đó bạn phải vượt qua URL như sau

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

Nó nên giữ cho bạn đi ..:)

1

Để sử dụng ứng dụng khách Javascript, bạn cần có máy chủ lưu trữ HTTP (ví dụ: máy chủ được chỉ ra bằng cách đánh dấu). Bạn cũng cần sử dụng TJSONProtocol.

Các tệp cách làm cho máy chủ Thrift Java hoạt động với ứng dụng khách Tiết kiệm Javascript nằm rải rác khắp nguồn. Tôi bối rối với nhau ở đây: https://github.com/LukeOwncloud/ThriftJavaJavascriptDemo