使用 Javascript 连接到 XMPP 服务器
Posted
技术标签:
【中文标题】使用 Javascript 连接到 XMPP 服务器【英文标题】:Connecting to XMPP server with Javascript 【发布时间】:2016-03-21 07:03:50 【问题描述】:所以,从现在起 2 天后,我一直在尝试开发这个。问题是:我有一个使用 XMPP 协议处理聊天的服务器。我必须连接到它,但我正在开发一个 Phonegap/Cordova 应用程序,并且没有插件。
我尝试使用 Strophe.js 连接到服务器,但没有成功。服务器要求我使用普通身份验证,并且已经为我提供了一个编码密码。
示例代码:
$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);
我也愿意接受新图书馆的建议! 提前致谢。
【问题讨论】:
试试 Quickblox xmpp 服务器,我用过这个,它在 phonegap 应用程序中工作。 我在 Cordova 应用程序中使用 Strophe.js 没有问题,但我通过普通凭据(通过 HTTPS 连接)连接到 XMPP 服务器。 @beaver 你能给我一个你是怎么做到的例子吗? 在这里查看我的答案***.com/questions/34453122/… 我认为你应该参考这个:github.com/arjunsk/Ionic-Chat-App 这还没有完成。但这将是创建聊天客户端的一个非常好的开始。 【参考方案1】:这是一个部署在 Plunker 上的 Ionic 聊天应用程序的非常简单的示例(需要将 XMPP 服务器部署为 localhost):http://plnkr.co/edit/i3at7UvgqHaiL8NzN2k3
所以在您的控制器中,代码可能是:
$scope.usr = username: 'hello@test.com', 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);
带有 Strophe.js 使用示例的其他 Plunker:
http://plnkr.co/edit/EhQHDsYpDhrECmaaIlZO
http://plnkr.co/edit/F8cbsBZQUPiZ0W1v0O89
【讨论】:
idk,它应该可以工作。我正在连接到在线 XMPP 服务器。使用 jacasr 我可以连接,但我将应用程序移植到 Mobile 并且 Jacasr 在那里不起作用。这个也不行。以上是关于使用 Javascript 连接到 XMPP 服务器的主要内容,如果未能解决你的问题,请参考以下文章