2013-05-03 14 views
8

Ich versuche, einen JavaScript-Client für meine Thrift-Server zu bauen. Der Server läuft und ich kann Anrufe zum Server bekommen, der mit einem PHP-Client arbeitet. Ich kann den Javascript Klienten gerade nicht herausfinden.Sparsamkeit Transport in Javascript-Client

Insbesondere Instanziierung der Transportbaffle mich. Das Tutorial auf http://thrift.apache.org/tutorial/js/ zeigt:

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

Wenn ich das tue, erhalte ich eine http 404 auf "/ var/www/thrift/service/tutorial /"

Ich habe ein oder zwei weitere Beispiele gefunden das verwenden

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

Aber das gibt mir auch einen 404.

Ich habe nie eine Erklärung gesehen, was ich an den Konstruktor von Transport in Javascript übergeben soll. In meinem PHP-Code erstelle ich einen Socket und übergebe diesen dann an den Konstruktor des Transport. Javascript beklagt sich jedoch, dass Thrift.Socket() kein Konstruktor ist.

Das Tutorial bei http://thrift.apache.org/tutorial/js/ ist nicht sehr hilfreich. Es heißt:

Die erste Sache für die Verwendung der Thrift-Dateien ist die Einrichtung Ihrer Transport-Protokoll. Zu diesem Zeitpunkt unterstützt es nur AJAX und ist wie folgt :

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

Es gibt keine Beschreibung dessen, was der Pfad an den Konstruktor übergeben werden sollte.

Ich bin auf diesem verloren. Was übermittele ich in JavaScript an den Transport-Konstruktor?

Antwort

1

Das Argument ist eine URL zu einem Website-Endpunkt, der als Spar-Server den HTTP-Prozessor und das JSON-Protokoll verwendet. Der Quellcode enthält eine java test server example, die mit einem solchen Client arbeiten kann.

Für Ihren eigenen Server sollte es in der Lage sein, als Webserver zu fungieren und Dinge wie CORS für domänenübergreifende Anfragen von Ihrem js-Client zu behandeln.

1

Ich denke, die Antwort Yiding gab Ihnen das Problem identifiziert. Ich habe keine vollständige Antwort, kann Ihnen aber einige Links geben, die Ihnen helfen, die Dinge herauszufinden. Wenn Sie Ihren Server in PHP schreiben, kann this question helfen. Wenn Sie Ihren Server in Java schreiben, hilft möglicherweise this blog post, der zu this sample code verbindet.

0

Die obigen Antworten haben bereits genügend Klarheit gegeben.

Um jedoch die Dinge ein wenig klarer zu machen, vorausgesetzt, dass Ihr Server localhost ist und es auf Port 8080 läuft.

Lassen Sie Ihren Projektnamen Tutorial_service und Endpunkt sein Projekt in Ihrem Server sein teach_thrift dann müssen Sie URL übergeben, wie unten

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

Es sollte Sie halten zu gehen ..:)

1

Um einen Javascript-Client verwenden zu können, benötigen Sie einen HTTP-Thrift-Server (z. B. den, auf den Sie hingewiesen haben). Sie müssen auch TJSONProtocol verwenden.

Die Dateien, wie ein Thrift-Java-Server mit einem Thrift-Javascript-Client arbeiten, sind in der Quelle verstreut. Ich habe sie hier zusammen verwirrt: https://github.com/LukeOwncloud/ThriftJavaJavascriptDemo

Verwandte Themen