标签: xmpp

如何使用Twisted Words Python库创建简单的Google Talk客户端?

我有兴趣使用Python制作Google Talk客户端,并希望使用Twisted libraries Words模块.我查看了这些示例,但它们不适用于当前的Google Talk实施.

这有什么运气的吗?你介意记录一个简短的教程吗?

作为一项简单的任务,我想创建一个客户端/机器人,跟踪我的各种Google Talk帐户的在线时间,以便我可以获得总数.我想我可以在每个帐户中与机器人交朋友,然后使用XMPP状态信息来跟踪我可以聚合的时间.

谢谢.

python xmpp twisted google-talk

17
推荐指数
2
解决办法
8357
查看次数

如何在订阅模式"两者"中添加名册

我正在使用smack 3.1.0,当我添加一个名册时,我无法获得"两者"的订阅.谁能帮我?下面是我的代码:

Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
Roster roster = connection.getRoster();
roster.createEntry("buddy@test.com","me",null)
Run Code Online (Sandbox Code Playgroud)

代码执行后,我在openfire中观察到订阅是"到"

java xmpp smack

17
推荐指数
2
解决办法
2万
查看次数

身份验证后xmpp登录失败

我已经看了一段时间这种行为,但这不是一个真正的问题.在我使用自己的应用程序在xmpp中成功验证后,错误关闭了我的连接:

<message from="chat.facebook.com" 
         to="-USERID@chat.facebook.com/RESOURCE" type="normal">   
   <subject>Lo sentimos, tu cuenta no está disponible</subject>
   <body>Your account is temporarily unavailable. Regain 
      access by logging into your account from your 
      computer&apos;s web browser: http://www.facebook.com/
   </body>
</message>

<stream:error>
   <conflict xmlns="urn:ietf:params:xml:ns:xmpp-streams"/>
   <text xml:lang="" xmlns="urn:ietf:params:xml:ns:xmpp-streams">
      Session terminated
   </text>
</stream:error>
Run Code Online (Sandbox Code Playgroud)

请注意断开连接之前收到的消息节.

为什么会发生这种情况?,我是否遇到了某种无证件限制?,除此之外,有没有办法区分这个错误和Facebook网页的断开连接?

我曾经检查过该消息节中收到的文本,但现在它们几乎每周更改一次,并且stream:error的文本对于这两种情况都是相同的,所以每次文本更改时更改应用程序都很痛苦.

authentication facebook conflict xmpp

17
推荐指数
1
解决办法
1096
查看次数

访问Google Talk聊天记录

我正在寻找一种方法来访问Google Talk聊天记录.用于Android设备的方法,但不必特定于它.我正在寻找一种官方方法,但这不是必需的.AFAIK没有官方方法.该方法必须不是,

  1. 通过IMAP(需要启用聊天和标签)
  2. 通过Talk.apk的ContentResolver(要求安装talk.apk)

除非它以某种方式绕过上述方法之后列出的问题.

Googles不同的Google Talk应用程序可以进行聊天记录,但没有任何文档可以了解其工作原理.

java android xmpp google-talk

17
推荐指数
1
解决办法
1565
查看次数

向ios发送推送通知,以便与离线用户openfire xmpp进行聊天

我有一个使用openfire的ios聊天应用程序,我需要做的是当消息(1)因任何原因无法发送时发送推送通知,(2)app处于暂停状态,即无法生成通知在其自己的.

我已经在stackoverflow和其他地方阅读了大部分有关此问题的相关问题/建议,我已经为我的问题得出了一些解决方案.我不是ios开发人员,也不是几天前我对openfire或xmpp一无所知,所以我担心我对事情的理解可能不完整,我的解决方案可能存在缺陷.

请确认我对它的理解,并建议我是否遗漏了某些东西,或者是否有更好的方法.还请建议实施下面列出的特定解决方案的复杂程度.

这里的挑战是确定何时需要推送以及何时启动流程,所以

1)一种方法是使用xmpp的xep-0184实现来检查消息是否已传递.要做到这一点,我们应该在ios数据库中有一些带有消息的传递标志,当从另一端收到传递的响应时更新.因此,我们需要在一段时间后检查此标志,如果传递的状态为false,则使用该消息启动推送过程.看起来是一个复杂的解决方案(等待响应..检查标志有一些时间滞后..不是很令人印象深刻)

2)更直接的方法是在openfire中做一些事情,当openfire无法传递它将其存储在离线表中的消息时,我们可以对该部分进行一些拦截并使用消息启动推送过程.这看起来是正确的方法,但我真的害怕在openfire中获得那么多东西并改变一些东西(这可能也很容易,有人用openfire工作了一点可以说出来吗?)

3)这是我的最后一招,这不是解决方案......但如果我无法在预期的时间范围内(从现在起一周内)正确完成,我们计划发送所有消息的推送通知.oppenfire将关注正常聊天,同时从我们的服务器发送每个消息的推送但是当应用程序在前台时,我们做一些事情来处理不需要显示的额外推送消息,否则只要有一个推送就会收到推送信息.你们怎么看待这种临时的方式(我们当然必须尽快改变这一点),这是可行的(或者我在这里也遗漏了一些东西).

PS谁能告诉Whatsapp和其他流行的应用程序如何处理这个?

非常感谢您的帮助.

chat xmpp openfire push-notification ios

17
推荐指数
1
解决办法
1万
查看次数

如何从XMPP获取旧消息(聊天历史记录)

我是XMPP的新手.

我需要通过XMPPOpenfire获取聊天记录.

我做谷歌搜索但没有得到满意答案.

任何链接或想法都将是很有帮助的.

xmpp openfire

17
推荐指数
2
解决办法
3万
查看次数

如何获取传入的xmpp消息的时间戳?

我正在使用aSmack库与远程xmpp服务器进行通信.我能够发送/接收消息,但我想获取传入消息的时间戳.

你能告诉我,它有可能吗?因为我找不到关于这个问题的任何信息.

提前致谢

android xmpp smack asmack

16
推荐指数
3
解决办法
1万
查看次数

使用XMPP在ios中构建聊天应用程序

我正在尝试在ios中构建一个聊天应用程序.我遇到了ios的XMPP.我对如何前进感到有点困惑.以下是我的疑惑:

  1. 我是否需要创建XMPP服务器来实现此应用程序?
  2. 或者是否有任何现有的服务器/服务可以用于相同的目的?

xmpp ios xmppframework

16
推荐指数
2
解决办法
2万
查看次数

基于Javascript的XMPP chatclient使用strophe js - 示例和教程?

我想制作一个简单的基于javascript的XMPP客户端.我偶然发现了'strophe js',这对于XMPP而言应该让我的生活变得更轻松,但我发现文档有点......不完整.它有一个关于如何连接/断开的例子,但几乎就是这样.

我需要获取联系人列表,发送和接收消息......我该怎么做?

实际上:我在哪里可以找到教程或如何做到这一点的例子?(这里不需要写完整的tut :)

javascript xmpp

16
推荐指数
1
解决办法
2万
查看次数

使用Smack 4.1.0的GCM XMPP服务器

我正在尝试调整这里为Smack 4.1.0 提供的示例.并有点困惑.

具体来说,我很难理解GcmPacketExtension现在应该扩展什么,构造函数应该如何工作以及如何更新Providermanager.addExtensionProvider以配合它.

我敢肯定以前有人必须这样做但是我找不到任何例子,而且我似乎只是使用文档进行圈选.

任何帮助将不胜感激,我相信答案很简单!

当前代码(正在编译但未运行):

    static {

    ProviderManager.addExtensionProvider(GCM_ELEMENT_NAME, GCM_NAMESPACE, new  ExtensionElementProvider<ExtensionElement>() {
        @Override
        public DefaultExtensionElement parse(XmlPullParser parser,int initialDepth) throws org.xmlpull.v1.XmlPullParserException,
        IOException {
            String json = parser.nextText();
            return new GcmPacketExtension(json);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

和:

private static final class GcmPacketExtension extends DefaultExtensionElement   {

    private final String json;

    public GcmPacketExtension(String json) {
        super(GCM_ELEMENT_NAME, GCM_NAMESPACE);
        this.json = json;
    }

    public String getJson() {
        return json;
    }

    @Override
    public String toXML() {
        return String.format("<%s xmlns=\"%s\">%s</%s>",
                GCM_ELEMENT_NAME, GCM_NAMESPACE,
                StringUtils.escapeForXML(json), GCM_ELEMENT_NAME);
    }

    public …
Run Code Online (Sandbox Code Playgroud)

xmpp smack google-cloud-messaging server

16
推荐指数
1
解决办法
7777
查看次数