2016-04-20 4 views
1

Ich habe eine Hybrid-Anwendung mit Ionic geschrieben. Ich wollte einen Ion-App-Chat integrieren, und ich fand this nice tutorial darüber, wie man einen Whatsapp-Klon mit Ionic und Meteor baut. Es ist das erste Mal, dass ich Meteor benutze, aber ich habe es geschafft, diesen Chat in meine bestehende mobile Anwendung zu integrieren. Allerdings bekomme ich nicht, wie man den Client an den Server bindet. Im Entwicklungsmodus funktioniert alles, da alles in localhost ist. Wie auch immer, ich möchte die Server-Seite in meine Host-Domäne verschieben, während die Client-Seite als mobile Anwendung erstellt wird. Wie kann ich dem Client sagen, dass der Server kein localhost ist? dankeIonic + Meteor + App Mobil. Wie bindet man den Server?

Probe Client-Code:

EDIT

der Code das gleiche wie das Tutorial ist ... Ich habe einige Anrufe zu Meteor-Server wie

Meteor.call('newMessage', { 
     text: self.data.message, 
     chatId: $stateParams.chatId, 
     userId: CurrentUserService.getUserId() 
    }); 

verwendet, um eine neue zu speichern Nachricht, relativ zum Chat: chatId

+0

pls einige Code zeigen, der auf dev Maschine arbeiten –

+0

es geht nicht um den Code ... es geht um den Server adresse ... es nimmt automatisch an, dass der server auf localhost: 3000 steht .... was aber wenn ich den server auf einen remote mach verschiebe ine? Wo sollte ich die Serveradresse angeben? – DeLac

+0

Ich bin kein Meteor-Experte, aber ich denke, dass es möglicherweise mit dem ROOT_URL-Wert zu tun hat. Versuchen Sie, "ROOT_URL = YOUR_REMOTE_DOMAIN_HERE Meteor" zu starten, wenn Sie Meteor starten. Ich bin mir nicht sicher, ob das Ändern der Umgebungsvariablen Ihr Problem löst. Vielleicht kann jemand, der versierter ist, mehr Einblick geben –

Antwort

0

Ich weiß nicht, ob es die beste Lösung ist ... Ich habe gerade herausgefunden, dass es funktioniert. Wahrscheinlich, wenn Sie die Full-Stack-Funktionen (wie Bereitstellung, Hot-Code-Push usw.) verwenden, ist meine Lösung nicht so sicher ... Wie auch immer, in meiner index.html setze ich die Variable DDP_DEFAULT_CONNECTION_URL manuell auf meine Serveradresse:

<!-- meteor --> 
    <script src="assets/libs/meteor/meteor-client-side.bundle.min.js"></script> 
    <script src="assets/libs/meteor/angular-meteor-bundle.js"></script> 
    <script src="assets/libs/meteor/meteor-runtime-config.js"></script>     
    <script> 
     SERVER_URL = "http://my_server_domain:3000"; 
     __meteor_runtime_config__ = {}; 
     __meteor_runtime_config__.DDP_DEFAULT_CONNECTION_URL = SERVER_URL; 
    </script>  

auf diese Weise ich die Standard-localhost überschreiben: 3000

(weitere Info here)