2016-03-21 10 views
1

Also habe ich versucht, diese 2 Tage von jetzt an zu entwickeln. Die Frage ist: Ich habe einen Server, der XMPP-Protokoll verwendet, um Chats zu verarbeiten. Ich muss mich damit verbinden, aber ich entwickle eine Phonegap/Cordova-Anwendung, und dafür gibt es kein Plugin.Verbinden mit XMPP-Server mit Javascript

Ich habe versucht, mit dem Server mit Strophe.js verbinden, aber hatte keinen Erfolg. Der Server verlangt von mir eine einfache Authentifizierung und hat mir bereits ein verschlüsseltes Passwort zur Verfügung gestellt.

Beispielcode:

$scope.onConnect = function(status){ 
    if (status == Strophe.Status.CONNECTING) { 
     $scope.connStatus = 'Strophe is connecting.'; 
    } else if (status == Strophe.Status.CONNFAIL) { 
     $scope.connStatus = 'Strophe failed to connect.'; 
    } else if (status == Strophe.Status.DISCONNECTING) { 
     $scope.connStatus = 'Strophe is disconnecting.'; 
    } else if (status == Strophe.Status.DISCONNECTED) { 
     $scope.connStatus = 'Strophe is disconnected.'; 
    } else if (status == Strophe.Status.CONNECTED) { 
     $scope.connStatus = 'Strophe is connected.'; 
    } 
} 

$scope.chatConnect = function(ID, xmppToken){ 
    connection = new Strophe.Connection('chat.server.com'); 
    Strophe.SASLPlain.priority = 99; 
    Strophe.SASLAnonymous.test = function() { 
     return false; 
    }; 
    Strophe.SASLMD5.test = function() { 
     return false; 
    }; 
    Strophe.SASLSHA1.test = function() { 
     return false; 
    }; 
    connection.rawInput = function(data){alert("Input: " + data);}; 
    connection.rawOutput = function(data){alert("Output: " + data);}; 
    connection.connect(ID, xmppToken, $scope.onConnect); 
} 

Ich bin offen auch für Vorschläge neuer Bibliotheken! Vielen Dank im Voraus.

+0

Probieren Sie den Quickblox xmpp server aus, ich habe dies verwendet und es funktioniert in der phonegap App. –

+0

Ich habe Strophe.js in einer Cordova App ohne Probleme verwendet, aber ich verbinde mich mit XMPP-Server, der Plain Credential (über eine HTTPS-Verbindung). – beaver

+0

@beaver kann dir ein Beispiel geben, wie hast du das gemacht? –

Antwort

2

hier ein wirklich einfaches Beispiel eines ionischen Chat-App auf Plunker (erfordert einen XMPP-Server bereitgestellt als localhost) eingesetzt ist: http://plnkr.co/edit/i3at7UvgqHaiL8NzN2k3

Also in Ihrem Controller der Code könnte sein: Andere

$scope.usr = {username: '[email protected]', password: 'pippo', connected: false}; 

var server = 'test.com'; // adapt to your server config (domain) 
var xmpp_server = 'http://127.0.0.1:7070/http-bind/'; 
var connection = null; 

$scope.connect = function (usr) { 
    connection = new Strophe.Connection(xmpp_server); 
    connection.connect(usr.username, usr.password, onConnect); 
} 

Plunkers mit Beispiel Strophe.js Nutzung:

http://plnkr.co/edit/EhQHDsYpDhrECmaaIlZO

http://plnkr.co/edit/F8cbsBZQUPiZ0W1v0O89

+0

IDK, sollte es funktionieren. Ich verbinde mich mit einem Online-XMPP-Server. Mit jacasr konnte ich mich verbinden, aber ich portiere die Anwendung auf Mobile und Jacasr funktioniert nicht dort. Weder das noch. –