XMPP类似谷歌的同步服务器通知解决方案



我正在寻找一种简单的方法来实现使用以下协议运行的XMPP服务器:https://developers.google.com/cloud-print/docs/rawxmpp

唯一的区别是我必须使用X-GOOGLE-TOKEN身份验证机制:https://stackoverflow.com/a/6211324/227244

过程很简单:我从客户端发送的数据中获取令牌,基于该令牌请求用户数据,并相应地设置JID,在生成的JID中添加一些随机字符。

之后,具有可能不同令牌但相同用户帐户的其他客户端连接到XMPP资源,对于订阅的客户端,将启用推送通知的广播。

可以从当前可用的实现中借用多少服务器代码?我会避免自己编写所有的服务器代码,尽管逻辑非常简单。我知道有ejabberd和prosody-xmpp服务器可以实现很多XEP。哪一个更容易添加自定义处理机制?你能为核心xmpp服务器提出其他稳定的替代方案吗?

谷歌设计X-OAUTH2的方式非常简单明了。事实上,PLAINX-OAUTH2机制的工作方式没有区别。您可以简单地选择一个标准的PLAIN实现,并使其适用于googleX-OAUTH2身份验证机制,而无需付出额外的努力。

我是Jaxl PHP库的作者,最近我宣布在库中支持X-OAUTH2。在这里,您可以看到我为支持这一点而编写的确切代码行。唯一相关的代码是:

switch($mechanism) {
case 'PLAIN':
case 'X-OAUTH2':
$stanza->t(base64_encode("x00".$user."x00".$pass));
break;

对于X-OAUTH2实现,$pass不过是您的oauth令牌。简而言之,来自PLAIN身份验证机制的密码字段成为X-OAUTH2机制的oauth令牌。其余的都保持不变。

最新更新